Server Installation
Required Components
- Database
- ASP .NET 2 - 3.5
- Microsoft Internet Information Services (IIS)
- External IP/URL
- Access to the machine with administrative privilege.
Installation Process
- Access the machine via RDP
- Copy all installation files to the Remote Host, this should include ePOD_WebApp, a SQL Folder and a PDA Folder and any required installation files (wkhtmltopdf, xferapp, sqlexpress)
All files can be found in P:\Releases\EPOD\Server\.
SQL Server Configuration
- Install SQL Express - with Tools if required
- Setup to use the default instance and default users
- Through SQL Server Configuration Manager
- For all the native and network clients
- Enable TCP/IP
- Enable Named Pipes
- Restart service if required, by clicking on SQL Server Services, choosing the database (usually MSSQLSERVER or SQLEXPRESS) and clicking stop then start from the toolbar.
- For all the native and network clients
- Add firewall exceptions to the programs and ports (1433)
- Server Manager, Configuration, Windows Firewall with Advanced Security, Inbound Rules
- Check whether the exception for the port already exists. If not, add a new exception with the New Rule link, then select Port, TCP, Specific Local Port 1433, Allow the Connection, for all network types. Give this a reasonable name (e.g. SQL Server).
Database Setup
- On the selected database (through SQL Server Management Studio).
- Create User, through Security, Logins, right-click, New User. Login Name: epod, SQL Server Authentication, password: eP0D1234. Default database should be left as Master. Uncheck 'Enforce Password Policy'.
- Open the SQL script Script.SQL within the SQL/Create folder copied to the remote host (File/Open/File').
- Check the two file paths at the top of this file match the directories for the install (only applicable to SQL Server installations). I.e.:
- If you are running the 32bit version on 64Bit Windows:
CREATE DATABASE [EPOD_TEST] ON PRIMARY ( NAME = N'EPOD', FILENAME = N'c:\Program Files (x86)\Microsoft SQL Server\MSSQL10_50.SQLEXPRESS\MSSQL\DATA\EPOD.mdf' , SIZE = 70656KB , MAXSIZE = UNLIMITED, FILEGROWTH = 1024KB ) LOG ON ( NAME = N'EPOD_log', FILENAME = N'c:\Program Files (x86)\Microsoft SQL Server\MSSQL10_50.SQLEXPRESS\MSSQL\DATA\EPOD_log.ldf' , SIZE = 136064KB , MAXSIZE = 2048GB , FILEGROWTH = 10%)
- Otherwise:
CREATE DATABASE [EPOD_TEST] ON PRIMARY ( NAME = N'EPOD', FILENAME = N'c:\Program Files\Microsoft SQL Server\MSSQL10_50.SQLEXPRESS\MSSQL\DATA\EPOD.mdf' , SIZE = 70656KB , MAXSIZE = UNLIMITED, FILEGROWTH = 1024KB ) LOG ON ( NAME = N'EPOD_log', FILENAME = N'c:\Program Files\Microsoft SQL Server\MSSQL10_50.SQLEXPRESS\MSSQL\DATA\EPOD_log.ldf' , SIZE = 136064KB , MAXSIZE = 2048GB , FILEGROWTH = 10%)
- Note for Full/Standard/Web Edition/Enterprise, replace SQLEXPRESS with MSSQLSERVER
- Execute the SQL script through the Execute button.
- Grant the user created Owner rights to the database:
- Database/EPOD/Security/Users, double-click 'epod' user.
- On the Database Role Membership pane, ensure DB Owner is checked, then click OK.
- Create the default site, either through a meta-data SQL script or manually through right-clicking on table EPOD_SITE, select Edit Top 200 Rows, populate SITE_ID, DESCRIPTION, everything else will default.
- Create a default user of ADM for this site, either through a meta-data SQL script or manually through right-clicking on table EPOD_USER, select Edit Top 200 Rows, populate SITE_ID, USER_ID, USER_PASSWORD, USER_NAME, USER_ADMIN = Y, USER_ACTIVE = Y, everything else will default.
ASP .NET
- Copy all of the ePOD_WebApp folder to the desired hosting directory (Normally C:\InetPub\wwwroot\Calidus_EPOD\).
- Install .NET 3.5 framework.
Warning: This is NOT optional; the system should work on .Net 2, but it has been built for 3.5 so will now ONLY work with that.
Note: Although the version shows as 2.X, this may still be version 3.5, as the runtime version of this shows as v2.0. Check the frameworks folder as shown below, or the installed roles from Server Management.
- Install the framework, from the file dotnetfx35.exe (a 200Mb download).
- Once this has completed, check this has registered with IIS (in the following IIS/Application Pool section). If not:
- Open the command prompt.
- Navigate to the Frameworks folder (C:\Windows\Microsoft.NET\Framework)
- Select your versions folder (v3.5)
- Run regiis -i
- Ensure .NET is assigned as a role for the Web Server
- Click Roles within Server Manager
- Add Role Services
- Check ASP.NET
IIS Configuration
In IIS Manager (Server Manager/Roles/WebServer (IIS)/Internet Information Services (IIS) Manager):
- Create a new application pool
- Click on Application Pools
- Click "Add Application Pool..."
- Name this as "EPOD"
- Select the relevant framework (2 or 3.5)
- Select advanced settings on the application pool and set up the applications pool identity, this should default to ApplicationPoolIdentify, which is fine.
- Set 32-bit application to True (This allows the Excel Upload to work) correctly
- Create the new .Net application
- Disable any default web site.
- Click on Sites and then "Add Web Site"
- Name the Site "Calidus_EPOD".
- Use the application pool created above.
- Choose the physical Web App path (Normally C:\InetPub\wwwroot\Calidus_EPOD\)
- Set the binding to the port numbers you have been provided (normally port 80 for normal traffic, or port 443 for secure traffic). If you have been provided an external host name, enter this where prompted. Click OK.
- Click "Edit Permissions"
- Click Security tab.
- In "Group or user names" pane, choose or add IIS_IUSERS, at least Read and Execute, Read and List.
- Also set the permissions on the Root/images folder and /Webservices/Calidus_epod/logfile.txt to allow IIS_USRS modify permissions.
- Enable "Anonymous Authentication" by clicking on the application and choosing "Authentication".
- Double-Click "Default Document", and ensure that "login.aspx" is set. If not, add it using the Add button.
- Set the MIME Type for Android application download
- Click the Server Name (top level on the pane on the left).
- Double click MIME Types
- Click Add
- Add MIME type ".apk" type "application/vnd.android.package-archive"
ePOD_WebApp
Once all the above is completed
- Log on to the site using the external connection (if a GDI+ error occurs there are permission issues, so revisit the above steps)
- Set up the following data:
- Site Configuration to Client
- Job Groups Configuration to Client
- Vehicle (ADM)
- Users and User Access
- Reason Code
- If not previously specified and they are required, set the vehicle checks on the site to that required by the site.
Note: The default is to create Vehicle Checks with no questions. A basic vehicle checks configuration is as follows:
<VEHICLE_CHECK FREQ="1"> <QUESTION ID="0001"> <TEXT>Please check the following items.</TEXT> <FORMAT>X</FORMAT> <SKIPABLE>N</SKIPABLE> <ITEMS> <ITEM>Oil Level</ITEM> <ITEM>Tyres</ITEM> <ITEM>Brakes</ITEM> <ITEM>Water</ITEM> <ITEM>Lights</ITEM> </ITEMS> </QUESTION> <QUESTION ID="0002"> <TEXT>Please enter any comments.</TEXT> <FORMAT>T</FORMAT> <SKIPABLE>Y</SKIPABLE> </QUESTION> <QUESTION ID="0003"> <TEXT>What is the current Mileage?</TEXT> <FORMAT>N</FORMAT> <SKIPABLE>N</SKIPABLE> </QUESTION> </VEHICLE_CHECK>
Scheduling Components
In order for the Import and Export processes to function, the AutoImport and AutoExport processes must be installed and configured for the implementation.
The processes should be set up in the windows Scheduler. The two processes should be scheduled so that they do not interfere with each other.
The Export process can be configured with parameters.
- No parameters - no WEBFLEET messages are sent.
- WEBFLEET - only WEBFLEET messages are sent
- HERE - only HERE Maps messages are sent
- ALL - all messages are sent.
This configuration allows for multiple AutoExport processes to be scheduled.
Web.config & ePOD_AutoExport.config
It is important during the installation to setup the required connection strings in the web.config file and the ePOD_AutoExport.config file, the setup is as follows:
<connectionStrings> <add name="DefaultCon" connectionString="Data Source=10.43.0.73;Initial Catalog=EPOD_DEV;User Id=epod;Password=epod"/> - Database Connection String <add name="DefaultPro" connectionString="System.Data.SqlClient"/> - Database Provider <add name="Calidus_ePOD.Properties.Settings.ConnectionString" connectionString="Data Source=10.43.0.73;Initial Catalog=EPOD_DEV;User Id=epod;Password=epod;"/> - Legacy Database Connection String <add name="EmailServer" connectionString="smtp.gmail.com"/> - Server to connect to for SMTP email <add name="EmailPort" connectionString="587"/> - Port used for SMTP connections <add name="EmailUser" connectionString="[email protected]"/> - SMTP email username <add name="EmailPass" connectionString="eP0D1234"/> - SMTP email users password <add name="ssl" connectionString="true"/> - Use SSL for the SMTP email conections <add name="Calidus_ePOD.Properties.Settings.ReportsDirectory" connectionString="http://localhost:53487/Reports/"/> - Legacy email POD code uses this pointing at the Reports directory URL <add name="cookie_parmameter" connectionString="localhost"/> - Always set to localhost for setting up cookies for report requests <add name="EPOD_URL" connectionString="C:\\inetpub\www\EPOD\"/> - This must point to the root install of the ePOD web application <add name="EPOD_PATH" connectionString="http://www.calidus-web.com:9093/epod/"/> - This must point to the root url of the ePOD web application </connectionStrings>
The full setup of the Admin WebApp config file is as follows:
<connectionStrings> <!-- Connection strings for the app - point to your database --> <add name="DefaultPro" connectionString="System.Data.SqlClient"/> <add name="DefaultCon" connectionString="Data Source=10.43.6.51;Initial Catalog=EPODV4_DEV;User Id=epod;Password=ePOD1234;Pooling=true;Application Name=ePOD WebApp"/> <add name="Calidus_ePOD.Properties.Settings.ConnectionString" connectionString="Data Source=10.43.6.51;Initial Catalog=EPODV4_DEV;User Id=epod;Password=ePOD1234;"/> <!-- PDA Settings - unused --> <add name="PDA.Version" connectionString="0.101"/> <add name="PDA.UPDATE" connectionString="http://www.calidus-web.com:9091/Calidus_EPOD/PDAUpdates/EPODClientInstaller.CAB"/> <!-- Email server settings - set to your email server --> <add name="EmailServer" connectionString="smtp.gmail.com"/> <add name="EmailPort" connectionString="587"/> <add name="EmailUser" connectionString="[email protected]"/> <add name="EmailPass" connectionString="eP0D1234"/> <add name="ssl" connectionString="true"/> <!-- Device settings - unused --> <add name="EPOD_URL" connectionString="http://www.calidus-web.com:9093/epod_test/"/> <add name="EPOD_PATH" connectionString=""/> <!-- Default directory to which reports are saved --> <add name="Calidus_ePOD.Properties.Settings.ReportsDirectory" connectionString="http://localhost:53487/Reports/"/> <!-- Unused. What domain created cookies belong to --> <add name="cookie_parmameter" connectionString="localhost"/> <!-- Folder paths for images and log files --> <add name="ImageParentFolderPath" connectionString="C:\EPOD_DATA\EPOD_DEV_V3\Images\"/> <add name="LogFilePath" connectionString="C:\EPOD_DATA\Logs\General\"/> <add name="WebServicesLogFileStem" connectionString="C:\EPOD_DATA\Logs\WebServices\WebServicesLogFile"/> <add name="MessageProcessLogFileStem" connectionString="C:\EPOD_DATA\Logs\MessageProcessing\ErrorMessageLog"/> <add name="LogFileStem" connectionString="C:\EPOD_DATA\Logs\General\LogFile"/> <add name="DefaultLogFileStem" connectionString="~/DefaultLog"/> </connectionStrings> <appSettings> <!-- Controls whether server-side writeDebug messages are logged to the EPOD_DEBUG table --> <add key="LogDebugMessages" value="N"/> <!-- Database connection timeout value - used globally --> <add key="DbCommandTimeout" value="30"/> <!-- Used in all EPOD apps to determine whether images are stored in the filesystem or in the database - defaults to filesystem --> <add key="ImagesOnFS" value="Y"/> <!-- Displayed when a POD report fails to show - for the customers to contact in case of failure--> <add key="CustomerSupportEmail" value="[email protected]"/> <!-- Whether the system is EPOD, ESERV or GENERIC - affects some logos and key functionality is some screens and reports --> <add key="SystemType" value="GENERIC"/> <!-- For storage of images - if set to "Y", uses the EpodAppDir, otherwise EpodDataDir. The following paths determine the subfolders depending on the image type --> <add key="UseAppDir" value="N"/> <add key="EpodAppDir" value="C:\Projects\Workspace\ePOD\Calidus EPOD-LFS"/> <add key="EpodDataDir" value="C:\EPOD_DATA\EPOD_DEV_V4"/> <add key="ImagePath" value="\Images"/> <add key="ImageCustSigPath" value="\CustSignatures"/> <add key="ImageEngSigPath" value="\EngSignatures"/> <add key="ImagePhotosPath" value="\Photos"/> <add key="ImageSitesPath" value="\Sites"/> <add key="ImageThumbnailPath" value="Thumb"/> <!-- Google Map URL and parameters --> <add key="MapApi" value="https://maps.googleapis.com/maps/api/js?key="/> <add key="MapApiKey" value="AIzaSyC25M_W-NzmsN9LA2SVTvN8yVT95ehsZ1w"/> <!-- Controls popup of actions from grid views - always 1 for V4 and above --> <add key="UseActionMenu" value="1"/> <!-- Base URL for Assist screen help - external access is through http://213.122.161.245 --> <add key="AssistURL" value="http://172.198.45.54/calidus-assist/EPOD/index.php?title="/> <!-- Unused --> <add key="EPL_EXPORT_JOB_PHOTO_FLAG" value="P"/> <add key="EPL_EXPORT_LOAD_PHOTO_FLAG" value="P"/> </appSettings>
Miscellaneous
- Ensure Microsoft Excel is installed - only for legacy versions
- Set up Mail Server Configuration within the Web.config file
- Set up scheduled service for auto export - only if required
- Insert any client details into the support document that are required (Site, User, Password)