Sjåførportal – Installasjonssveiledning

Fra DataGrafikk
Sideversjon per 10. nov. 2017 kl. 14:01 av DataGrafikk (diskusjon | bidrag) (→‎Databaseinfo - TempusAppServer.daConnections)
(diff) ← Eldre sideversjon | Nåværende sideversjon (diff) | Nyere sideversjon → (diff)
Hopp til navigeringHopp til søk


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>
  ....

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.