Sjåførportal – Installasjonssveiledning
Revisjonshistorikk
- 22.10.2013 - Første versjon av dokument
- 07.04.2016 - Config flyttet til xml-fil.
- 07.04.2016 - ASP.NET-side distribusjon endret fra msi til zip.
Introduksjon
Dette er en installasjonsveiledning for Sjåførportalen og Tempus Applikasjonsserver. Disse er frittstående tjenester utenfor DGTempus, og krever derfor eget oppsett og konfigurasjon.
Alle eksemplene og skjermbildene er fra Windows 2008 R2.
Definisjoner og forkortelser
Sjåførportal | Webside hvor sjåførene kan logge på og se på kjøreoppdragene sine, og melde inn f.eks. km-stand, forbrukt tid og endringer ihht. planlagt kjøring. |
Applikasjonsserver | En tjeneste som publiserer nødvendige deler av Tempus-databasen for sjåførportalen. |
Installasjon av applikasjonsserver
Applikasjonsserveren publiserer utvalgte deler av Tempus-databasen som en webservice. Denne brukes foreløpig kun av sjåførportalen, så det er bare det som er relevant for publisering av aktiviteter til sjåfører som gjøres tilgjengelig. Tilgangen styres via en rolle i databasen kalt «appserver».
Tabellene og feltene som selve kjøreoppdraget inneholder og som sjåføren kan lagre eventuelle avvik og tilbakemeldinger til, er faste. Kjøreordren som kjørekontoret kan skrive ut er det mulig å tilpasse til den enkelte kundes behov. Alle tabeller og felter som kjøreordren i papirformat kan inneholde er derfor ikke tilgjengelig i denne rollen. Rapportgeneratoren kan eventuelt bruke ini-filen fra Tempus for å få nødvendig databasetilgang.
Installasjon
Start installasjonsfilen TempusAppServer-(versjonsnr).msi. Installasjonen har ingen alternativer eller valg, den installeres automatisk til %ProgramFiles(x86)%\DataGrafikk\TempusAppServer
Konfigurasjon
Som standard vil applikasjonsserveren ligge her:
C:\Program Files (x86)\DataGrafikk\TempusAppServer\
I katalogen applikasjonsserveren er installert i ligger det tre konfigurasjonsfiler.
Databaseinfo - TempusAppServer.daConnections
Denne filen inneholder databasetilkoblingsinfo. Filen ser slik ut:
<Connections>
<PoolTransactionBehaviour>Fail</PoolTransactionBehaviour>
<Definitions>
<Definition>
<Description />
<ConnectionString>MSSQL.NET?Server=;Database=;User ID=;Password=;Trusted_Connection=False;</ConnectionString>
<ConnectionType>MSSQL</ConnectionType>
<Default>True</Default>
<Name>Tempus ADO Connection</Name>
</Definition>
</Definitions>
<CanRaiseEventsInternal>True</CanRaiseEventsInternal>
</Connections>
Her fyller man ut ConnectionString. Eksempel:
<ConnectionString>MSSQL.NET?Server=databaseserver.domene.local;Database=TempusDB;User ID=TempusDBBruker;Password=Passord;Trusted_Connection=False;</ConnectionString>
Databasebrukeren trenger kun tilgang til rollen "appserver" i Tempus-databasen.
Server | Servernavn (evt. fqdn/ip) til databaseserveren, etterfulgt av \Instance hvis det ikke er default instans (f.eks. DBServer\SQLExpress). |
Database | Databasenavn til Tempus |
User ID | Databasebruker i Tempus-databasen. Denne trenger kun tilgang til appserver-rollen. |
Password | Passord til databasebrukeren |
Trusted_Connection | Hvis denne er True, ignoreres User ID og Password. Databasepålogging skjer da via (AD-)brukeren som servicen kjører som. |
Andre innstillinger - DataGrafikk.TempusAppServer.exe.config
Her settes alle andre applikasjonsserver-spesifikke innstillinger. Filen inneholder følgende:
<?xml version="1.0"?>
<configuration>
<configSections>
....
</configSections>
<ServerConfiguration>
<ServerChannel type="http" port="8099" />
<ServerMessages>
<ServerMessage type="bin" />
</ServerMessages>
<SessionManager type="Memory" timeout="5184000" />
<SslOptions
useTLS="true"
certificateThumbprint="<fingerprint til sertifikat>"
generateCertificate="false"
/>
</ServerConfiguration>
<tempusAppServer
smtpHostname="mail.server.local"
smtpPort="25"
smtpUsername="smtp brukernavn"
smtpPassword="smtp passord"
busDriverWebUrl="https://adresse.til.portalen/sted"
/>
....
</configuration>
Her fyller man inn domenenavn til databaseserver og mailserver, brukernavn, passord etc. Sertifikat kan enten være automatisk generert, ved å sette generateCertificate=true", eller ved å spesifisere certificateThumbprint. Man kan finne thumbprint ved å kjøre følgende PowerShell-kommando:
Get-ChildItem -Path Cert:\LocalMachine\My
Eksempel:
PS C:\> Get-ChildItem -Path Cert:\LocalMachine\My
Directory: Microsoft.PowerShell.Security\Certificate::LocalMachine\My
Thumbprint Subject
---------- -------
000102030405060708090A0B0C0D0E0F10111213 CN=common.name
PS C:\>
I dette tilfellet vil man sette
<SslOptions
useTLS="true"
certificateThumbprint="000102030405060708090A0B0C0D0E0F10111213"
generateCertificate="false"
/>
Tilkoblingsinnstillinger for innkommende trafikk
navn | beskrivelse |
---|---|
SslOptions/useTLS | true=https, false=http |
SslOptions/certificateThumbprint | fingerprint til HTTPS-sertifikat for kryptering av trafikk mellom sjåførportal og applikasjonsserver |
SslOptions/generateCertificate | true=automatisk generert sertifikat, false=som spesifisert i fingerprint |
ServerChannel/port | TCP-porten som sjåførportalen lytter på (std. 8099) |
SMTP-info for eventuell utsendelse av e-post
navn | beskrivelse |
---|---|
tempusAppServer/smtpHostname | Adresse til e-postserver |
tempusAppServer/smtpPort | Port som SMTP-serveren lytter på (std. 25) |
tempusAppServer/smtpUsername | Brukernavn for å logge på e-postkonto |
tempusAppServer/smtpPassword | Passord for å logge på e-postkonto |
Diverse innstillinger
navn | beskrivelse |
---|---|
tempusAppServer/busDriverWebUrl | URL til sjåførportalen hvor brukerne kan logger på. Brukes i epost som sendes ut når man resetter passord |
SessionManager/timeout | Antall sekunder en brukers sesjon varer. Når denne er passert må brukeren logge inn på nytt. |
Merk at sessiondata lagres i minne, så etter en restart av applikasjonsserveren må brukerne alltid logge inn på nytt.
Rapportgenerator - dgdb.ini
I de fleste tilfeller vil rapportgeneratoren som bl.a. lager nedlastbare pdf-versjoner av kjøreordre trenge utvidet tilgang databasen i forhold til applikasjonsserveren. Rapportgeneratoren kan lese egne tilkoblingsinnstillinger fra filen dgdb.ini. Denne er identisk med Tempus sin dgdb.ini-fil, så man kopierer i tilfelle denne filen fra Tempus. Merk at databaseservernavn må være det samme i TempusAppServer.daConnections og dgdb.ini - enten FQDN eller kun hostname.
Registrere service og rapportgenerator
Kjør følgende fra katalogen som applikasjonsserveren er installert i:
TempusAppServer.exe --install
TempusRapportGenerator.exe /regserver
Starte applikasjonsserveren
Start servicen "TempusAppServer". Sjekk også at den er satt opp til å starte automatisk, og evt. til å restarte ved feil:
Installasjon av Sjåførportalen
Sjåførportalen er en ASP.NET webside som lar sjåfører se på og returnere kjøreordre. Denne må installeres på en IIS webserver. Den krever at .NET Framework 3.5 er installert.
Installasjon
Sjåførportalen installeres under en eksisterende site i IIS. Hvis ønsket site ikke eksisterer, må denne opprettes i IIS. Sertifikater, domenenavn etc. spesifiseres i IIS, ikke i Sjåførportalen.
Selve sjåførportalen distribueres som en zip-fil. Denne pakkes ut og legges i en katalog på webserveren. Opprett en Application i IIS for denne katalogen, og sett Application Pool til ASP.NET v4.0
Konfigurasjon
Kobling til applikasjonsserveren
Sjåførportalen må settes opp til å peke til applikasjonsserveren. Dette gjøres i Web.config-filen. Denne ligger i katalogen man pakket ut sjåførportalen i.
Finn dataAbstract-seksjonen, og sett targetUrl til å peke til URL som applikasjonsserveren lytter på. Merk at denne må slutte på "/bin".
....
<dataAbstract>
<add name="dataAbstract" targetUrl="https://appserver.local:8099/bin" loginservice="DriverLoginService" dataservice="DriverService" />
</dataAbstract>
....
Hvis applikasjonsserveren ikke har et gyldig sertifikat, kan man spesifisere thumbprint som godtaes slik:
....
<dataAbstract>
<add name="dataAbstract" targetUrl="https://appserver.local:8099/bin" loginservice="DriverLoginService" dataservice="DriverService" certificateThumbprint="000102030405060708090A0B0C0D0E0F10111213" />
</dataAbstract>
....
Logo
Selskapets logo, evt. et annet bilde som man vil vise øverst i påloggingssiden, legges her:
Content\themes\Default\logo.png
Synlige og påkrevd utfylte felter
Som standard er alle felter synlige og ingen felter påkrevd utfylt. Man kan endre dette ved å sette showForEdit, showForDisplay og isRequired i filen videmodelMetadata.config. Eksempel:
Skjule km.-stand ved start og slutt:
<add propertyName="AssignmentEditView.KmStart" isRequired="false" showForDisplay="false" />
<add propertyName="AssignmentEditView.KmStop" isRequired="false" showForDisplay="false" />
Kreve utfylling av antall timer med passasjerer:
<add propertyName="AssignmentEditView.HoursWithPax" isRequired="true" showForDisplay="true" />
Standard innhold i filen er:
<?xml version="1.0"?>
<viewmodelMetadata>
<!-- Aktivitetvisning -->
<!-- Tidsforbruk -->
<add propertyName="AssignmentEditView.GarageTime" showForDisplay="true" showForEdit="true" />
<add propertyName="AssignmentEditView.PreStartTime" showForDisplay="true" showForEdit="true" />
<add propertyName="AssignmentEditView.HoursStart" showForDisplay="true" />
<add propertyName="AssignmentEditView.HoursEnd" showForDisplay="true" />
<add propertyName="AssignmentEditView.ReturnTime" showForDisplay="true" />
<add propertyName="AssignmentEditView.HoursActual" isRequired="false" showForDisplay="true" />
<add propertyName="AssignmentEditView.HoursWithPax" isRequired="false" showForDisplay="true" />
<!-- Kilometer kjørt -->
<add propertyName="AssignmentEditView.KmStart" isRequired="false" showForDisplay="true" />
<add propertyName="AssignmentEditView.KmStop" isRequired="false" showForDisplay="true" />
<add propertyName="AssignmentEditView.KmActual" isRequired="false" showForDisplay="true" />
<add propertyName="AssignmentEditView.KmWithPax" isRequired="false" showForDisplay="true" />
<!-- Avvik. Hvis minst én av disse har showForDisplay="true" vises hele blokken med alle feltene -->
<add propertyName="AssignmentEditView.DeviationDescription" showForDisplay="true" />
<add propertyName="AssignmentEditView.DeviationRemark" showForDisplay="true" />
<!-- Antall passasjerer -->
<add propertyName="AssignmentEditView.Pax" isRequired="false" showForDisplay="true" />
<!-- Utlegg -->
<add propertyName="AssignmentEditView.DrivingExpense" showForDisplay="true" />
<!-- Redigeringssider -->
<!-- Tidsforbruk -->
<add propertyName="AssignmentEditHoursView.GarageTime" showForDisplay="true" showForEdit="true" />
<add propertyName="AssignmentEditHoursView.PreStartTime" showForDisplay="true" showForEdit="true" />
<add propertyName="AssignmentEditHoursView.HoursStart" showForDisplay="true" showForEdit="true" />
<add propertyName="AssignmentEditHoursView.HoursEnd" showForDisplay="true" showForEdit="true" />
<add propertyName="AssignmentEditHoursView.ReturnTime" showForDisplay="true" showForEdit="true" />
<add propertyName="AssignmentEditHoursView.HoursActual" showForDisplay="true" showForEdit="true" />
<add propertyName="AssignmentEditHoursView.HoursWithPax" showForDisplay="true" showForEdit="true" />
<!-- Kilometer kjørt -->
<add propertyName="AssignmentEditKmView.KmStart" showForDisplay="true" showForEdit="true" />
<add propertyName="AssignmentEditKmView.KmStop" showForDisplay="true" showForEdit="true" />
<add propertyName="AssignmentEditKmView.KmActual" showForDisplay="true" showForEdit="true" />
<add propertyName="AssignmentEditKmView.KmWithPax" showForDisplay="true" showForEdit="true" />
<!-- Antall passasjerer -->
<add propertyName="AssignmentEditPax.Pax" showForEdit="true" />
<!-- Avvik. Hvis minst én av disse har showForDisplay="true" vises hele blokken med alle feltene -->
<add propertyName="AssignmentEditFeedbackView.DeviationTypeId" showForDisplay="true" showForEdit="true" />
<add propertyName="AssignmentEditFeedbackView.DeviationRemark" showForDisplay="true" showForEdit="true" />
<!-- Utlegg -->
<add propertyName="AssignmentEditExpensesView.Expenses" showForDisplay="true" showForEdit="true" />
</viewmodelMetadata>
Starte sjåførportalen
Som standard starter IIS site og application pool automatisk, så sjåførportalen skal nå være klar til bruk. Den vil være tilgjengelig under domenenavnet til tilhørende site i IIS. Brukertilgang styres fra Tempus, og er beskrevet i et eget dokument.