|
|
(46 intermediate revisions by 2 users not shown) |
Line 1: |
Line 1: |
− | == General ==
| + | #REDIRECT [[Configuration_Files]] |
− | See the Microsoft MSDN article for [http://msdn.microsoft.com/en-us/library/ms733830%28v=vs.110%29.aspx configuring services] for further information
| + | |
− | | + | |
− | == Sections ==
| + | |
− | | + | |
− | ===configSection===
| + | |
− | | + | |
− | In the configSection tag service specific configurations can be defined. These settings include logging and exception handling in the {{UBIK}} web service. This tag should not be changed in general.
| + | |
− | <source lang="xml">
| + | |
− | <configSections>
| + | |
− | <section name="loggingConfiguration" type="Microsoft.Practices.EnterpriseLibrary.Logging.Configuration.LoggingSettings, Microsoft.Practices.EnterpriseLibrary.Logging, Version=5.0.414.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35" requirePermission="true" />
| + | |
− | <section name="exceptionHandling" type="Microsoft.Practices.EnterpriseLibrary.ExceptionHandling.Configuration.ExceptionHandlingSettings, Microsoft.Practices.EnterpriseLibrary.ExceptionHandling, Version=5.0.414.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35" requirePermission="true" />
| + | |
− | </configSections>
| + | |
− | </source>
| + | |
− | | + | |
− | ===loggingConfiguration===
| + | |
− | In this section the logging of the web service is configured for different types of information (errors, warnings, ...). It is important to specify a path the system user executing the web service has all the required access rights.
| + | |
− | <source lang="xml">
| + | |
− | <loggingConfiguration name="" tracingEnabled="true" defaultCategory="ASSERTION">
| + | |
− | <listeners>
| + | |
− | <add name="log.warning" type="Microsoft.Practices.EnterpriseLibrary.Logging.TraceListeners.RollingFlatFileTraceListener, Microsoft.Practices.EnterpriseLibrary.Logging, Version=5.0.414.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35"
| + | |
− | listenerDataType="Microsoft.Practices.EnterpriseLibrary.Logging.Configuration.RollingFlatFileTraceListenerData, Microsoft.Practices.EnterpriseLibrary.Logging, Version=5.0.414.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35"
| + | |
− | fileName="C:\UBIK_Logs\.UBIK.LOG.BUILD\warnings.log" footer="" formatter="Text Formatter SMALL" header="-----------------------------------------------------------------" rollFileExistsBehavior="Increment" rollInterval="None" traceOutputOptions="None"/>
| + | |
− | <add name="log.error" type="Microsoft.Practices.EnterpriseLibrary.Logging.TraceListeners.RollingFlatFileTraceListener, Microsoft.Practices.EnterpriseLibrary.Logging, Version=5.0.414.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35"
| + | |
− | listenerDataType="Microsoft.Practices.EnterpriseLibrary.Logging.Configuration.RollingFlatFileTraceListenerData, Microsoft.Practices.EnterpriseLibrary.Logging, Version=5.0.414.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35"
| + | |
− | fileName="C:\UBIK_Logs\.UBIK.LOG.BUILD\error.log" footer="" formatter="Text FormatterFULL" header="-----------------------------------------------------------------" rollFileExistsBehavior="Increment" rollInterval="Week"/>
| + | |
− | <add name="log.assertion" type="Microsoft.Practices.EnterpriseLibrary.Logging.TraceListeners.RollingFlatFileTraceListener, Microsoft.Practices.EnterpriseLibrary.Logging, Version=5.0.414.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35"
| + | |
− | listenerDataType="Microsoft.Practices.EnterpriseLibrary.Logging.Configuration.RollingFlatFileTraceListenerData, Microsoft.Practices.EnterpriseLibrary.Logging, Version=5.0.414.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35"
| + | |
− | fileName="C:\UBIK_Logs\.UBIK.LOG.BUILD\assertion.log" footer="" formatter="Text Formatter ASSERTION" header="-----------------------------------------------------------------" rollFileExistsBehavior="Increment"/>
| + | |
− | <add name="log.debug" type="Microsoft.Practices.EnterpriseLibrary.Logging.TraceListeners.RollingFlatFileTraceListener, Microsoft.Practices.EnterpriseLibrary.Logging, Version=5.0.414.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35"
| + | |
− | listenerDataType="Microsoft.Practices.EnterpriseLibrary.Logging.Configuration.RollingFlatFileTraceListenerData, Microsoft.Practices.EnterpriseLibrary.Logging, Version=5.0.414.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35"
| + | |
− | fileName="C:\UBIK_Logs\.UBIK.LOG.BUILD\debug.log" footer="" formatter="Text Formatter SMALL" header="----------------------------------------" rollFileExistsBehavior="Increment"/>
| + | |
− | <add name="log.error.header" type="Microsoft.Practices.EnterpriseLibrary.Logging.TraceListeners.RollingFlatFileTraceListener, Microsoft.Practices.EnterpriseLibrary.Logging, Version=5.0.414.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35"
| + | |
− | listenerDataType="Microsoft.Practices.EnterpriseLibrary.Logging.Configuration.RollingFlatFileTraceListenerData, Microsoft.Practices.EnterpriseLibrary.Logging, Version=5.0.414.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35"
| + | |
− | fileName="C:\UBIK_Logs\.UBIK.LOG.BUILD\debug.error.header.log" footer="" formatter="Text Formatter TINY" header="-------------------------------------" rollFileExistsBehavior="Increment"/>
| + | |
− | <add name="servicelog" type="Microsoft.Practices.EnterpriseLibrary.Logging.TraceListeners.FlatFileTraceListener, Microsoft.Practices.EnterpriseLibrary.Logging, Version=5.0.414.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35"
| + | |
− | listenerDataType="Microsoft.Practices.EnterpriseLibrary.Logging.Configuration.FlatFileTraceListenerData, Microsoft.Practices.EnterpriseLibrary.Logging, Version=5.0.414.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35"
| + | |
− | fileName="C:\UBIK_Logs\SericeLogs\Infopath.V2\infopath_service_v2.log" footer="" formatter="Text Formatter.SERVICE"/>
| + | |
− | <add name="servicelog.rolling" type="Microsoft.Practices.EnterpriseLibrary.Logging.TraceListeners.RollingFlatFileTraceListener, Microsoft.Practices.EnterpriseLibrary.Logging, Version=5.0.414.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35"
| + | |
− | listenerDataType="Microsoft.Practices.EnterpriseLibrary.Logging.Configuration.RollingFlatFileTraceListenerData, Microsoft.Practices.EnterpriseLibrary.Logging, Version=5.0.414.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35"
| + | |
− | fileName="C:\UBIK_Logs\.UBIK.LOG.BUILD\service.build.V2.log" footer="" formatter="Text Formatter.SERVICE" header="########################################" rollFileExistsBehavior="Increment" rollSizeKB="1000" maxArchivedFiles="50"/>
| + | |
− | </listeners>
| + | |
− | <formatters>
| + | |
− | <add type="Microsoft.Practices.EnterpriseLibrary.Logging.Formatters.TextFormatter, Microsoft.Practices.EnterpriseLibrary.Logging, Version=5.0.414.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35"
| + | |
− | template="Timestamp: {timestamp}{newline} Message: {message}{newline} Category: {category}{newline} Priority: {priority}{newline} EventId: {eventid}{newline} Severity: {severity}{newline} Title:{title}{newline} Machine: {localMachine}{newline} App Domain: {localAppDomain}{newline} ProcessId: {localProcessId}{newline} Process Name: {localProcessName}{newline} Thread Name: {threadName}{newline} Win32 ThreadId:{win32ThreadId}{newline} Extended Properties: {dictionary({key} - {value}{newline})}" name="Text FormatterFULL"/>
| + | |
− | <add type="Microsoft.Practices.EnterpriseLibrary.Logging.Formatters.TextFormatter, Microsoft.Practices.EnterpriseLibrary.Logging, Version=5.0.414.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35"
| + | |
− | template="{timestamp}{newline} {category} [{eventid}]{newline} {processName}{newline} {message}{newline}" name="Text Formatter ASSERTION"/>
| + | |
− | <add type="Microsoft.Practices.EnterpriseLibrary.Logging.Formatters.TextFormatter, Microsoft.Practices.EnterpriseLibrary.Logging, Version=5.0.414.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35"
| + | |
− | template="{timestamp}{newline} {category} [{eventid}] {processName}{newline} {message}{newline} Extended Properties: {dictionary({key} - {value}{newline})}" name="Text Formatter SMALL"/>
| + | |
− | <add type="Microsoft.Practices.EnterpriseLibrary.Logging.Formatters.TextFormatter, Microsoft.Practices.EnterpriseLibrary.Logging, Version=5.0.414.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35"
| + | |
− | template="{timestamp} {message}{newline}" name="Text Formatter TINY"/>
| + | |
− | <add type="Microsoft.Practices.EnterpriseLibrary.Logging.Formatters.TextFormatter, Microsoft.Practices.EnterpriseLibrary.Logging, Version=5.0.414.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35"
| + | |
− | template="{timestamp}{newline} {processName}{newline} {newline} Parameter: {newline} ----------------{newline} {dictionary({key} - {value}{newline})} {newline} Result:{newline} ----------------{newline} {message}{newline} " name="Text Formatter.SERVICE"/>
| + | |
− | </formatters>
| + | |
− | <categorySources>
| + | |
− | <add switchValue="All" name="ASSERTION">
| + | |
− | <listeners>
| + | |
− | <add name="log.assertion"/>
| + | |
− | </listeners>
| + | |
− | </add>
| + | |
− | <add switchValue="All" name="WARNING">
| + | |
− | <listeners>
| + | |
− | <add name="log.warning"/>
| + | |
− | </listeners>
| + | |
− | </add>
| + | |
− | <add switchValue="All" name="ERROR">
| + | |
− | <listeners>
| + | |
− | <add name="log.error.header"/>
| + | |
− | </listeners>
| + | |
− | </add>
| + | |
− | <add switchValue="All" name="DEBUG">
| + | |
− | <listeners>
| + | |
− | <add name="log.debug"/>
| + | |
− | </listeners>
| + | |
− | </add>
| + | |
− | <add switchValue="All" name="EXCEPTION">
| + | |
− | <listeners>
| + | |
− | <add name="log.error"/>
| + | |
− | </listeners>
| + | |
− | </add>
| + | |
− | <add switchValue="All" name="SERVICE">
| + | |
− | <listeners>
| + | |
− | <add name="servicelog.rolling"/>
| + | |
− | </listeners>
| + | |
− | </add>
| + | |
− | </categorySources>
| + | |
− | <specialSources>
| + | |
− | <allEvents switchValue="All" name="All Events"/>
| + | |
− | <notProcessed switchValue="All" name="Unprocessed Category"/>
| + | |
− | <errors switchValue="All" name="Logging Errors & Warnings">
| + | |
− | <listeners>
| + | |
− | <add name="log.error"/>
| + | |
− | </listeners>
| + | |
− | </errors>
| + | |
− | </specialSources>
| + | |
− | </loggingConfiguration>
| + | |
− | </source>
| + | |
− | | + | |
− | ===exceptionHandling===
| + | |
− | | + | |
− | In this tag the settings for exception handling can be specified.
| + | |
− | | + | |
− | <source lang="xml">
| + | |
− | <exceptionHandling>
| + | |
− | <exceptionPolicies>
| + | |
− | <add name="System.Exception">
| + | |
− | <exceptionTypes>
| + | |
− | <add name="All Exceptions" type="System.Exception, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089"
| + | |
− | postHandlingAction="None">
| + | |
− | <exceptionHandlers>
| + | |
− | <add name="System.Exception" type="Microsoft.Practices.EnterpriseLibrary.ExceptionHandling.Logging.LoggingExceptionHandler, Microsoft.Practices.EnterpriseLibrary.ExceptionHandling.Logging, Version=5.0.414.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35"
| + | |
− | logCategory="EXCEPTION" eventId="100" severity="Error" title="System.Exception"
| + | |
− | formatterType="Microsoft.Practices.EnterpriseLibrary.ExceptionHandling.TextExceptionFormatter, Microsoft.Practices.EnterpriseLibrary.ExceptionHandling, Version=5.0.414.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35"
| + | |
− | priority="0" />
| + | |
− | </exceptionHandlers>
| + | |
− | </add>
| + | |
− | </exceptionTypes>
| + | |
− | </add>
| + | |
− | </exceptionPolicies>
| + | |
− | </exceptionHandling>
| + | |
− | </source>
| + | |
− | | + | |
− | ===appSettings===
| + | |
− | In this section the settings of the {{UBIK}} service can be specified. The settings are described in chapter [[UBIK_Web_Service_Configuration|{{UBIK}} Web Service Configuration]].
| + | |
− | | + | |
− | Example 1:
| + | |
− | | + | |
− | <source lang="xml">
| + | |
− | <appSettings>
| + | |
− | <add key="UBIK.DataBase.ConnectionString" value="Data Source=ubikdbserver.mydomain;Initial Catalog=UBIK.MYDATABASE;User ID=myuser;Password=mypassword" />
| + | |
− | <add key="UBIK.Service.MaxIdleMinutes" value="5" />
| + | |
− | <add key="UBIK.Service.ValityPeriode" value="0" />
| + | |
− | <add key="UBIK.Service.TokenValityPeriode" value="300" />
| + | |
− | <add key="UBIK.Service.LogLevel" value="10" />
| + | |
− | <add key="UBIK.Service.UserRestrictive" value="1" />
| + | |
− | <add key="UBIK.Service.DeviceRestrictive" value="1" />
| + | |
− | <add key="UBIK.Service.TokenRestrictive" value="1" />
| + | |
− | <add key="UBIK.Service.LanguageID" value="0" />
| + | |
− | <add key="UBIK.Service.SessionManagementType" value="0" />
| + | |
− | <add key="UBIK.Service.SessionManagementUrl" value="" />
| + | |
− | </appSettings>
| + | |
− | </source>
| + | |
− | | + | |
− | Example 2 (configured for an Microsoft Azure cloud database and a LAS service)
| + | |
− | | + | |
− | <source lang="xml">
| + | |
− | <appSettings>
| + | |
− | <add key="UBIK.DataBase.ConnectionString" value="Data Source=tcp:xxxxxxxx.database.windows.net,1433;Initial Catalog=UBIK.MYDATABASE;User ID=myclouduser@xxxxxxxx;Password=mypassword" />
| + | |
− | <add key="UBIK.Service.MaxIdleMinutes" value="5" />
| + | |
− | <add key="UBIK.Service.ValityPeriode" value="0" />
| + | |
− | <add key="UBIK.Service.TokenValityPeriode" value="300" />
| + | |
− | <add key="UBIK.Service.LogLevel" value="10" />
| + | |
− | <add key="UBIK.Service.UserRestrictive" value="1" />
| + | |
− | <add key="UBIK.Service.DeviceRestrictive" value="1" />
| + | |
− | <add key="UBIK.Service.TokenRestrictive" value="1" />
| + | |
− | <add key="UBIK.Service.LanguageID" value="0" />
| + | |
− | <add key="UBIK.Service.SessionManagementType" value="1" />
| + | |
− | <add key="UBIK.Service.SessionManagementUrl" value="https://myusamserver.mydomain/UBIK/USAM/USAM.svc/SOAP" />
| + | |
− | </appSettings>
| + | |
− | </source>
| + | |
− | | + | |
− | ===system.web===
| + | |
− | | + | |
− | This does not have to be edited in general.
| + | |
− | | + | |
− | <source lang="xml">
| + | |
− | <system.web>
| + | |
− | <customErrors mode="Off"/>
| + | |
− | <httpRuntime maxRequestLength="65536" />
| + | |
− | <compilation debug="true" defaultLanguage="c#" targetFramework="4.0" />
| + | |
− | </system.web>
| + | |
− | </source>
| + | |
− | | + | |
− | ===system.serviceModel===
| + | |
− | | + | |
− | In this section the web services are configured:
| + | |
− | * Behaviours for services and endpoints
| + | |
− | * Bindings (provides different configurations for data services and endpoints specified by the name which then is used in the service/client configuration). See [http://msdn.microsoft.com/en-us/library/ms733099%28v=vs.110%29.aspx Details] for further information and [http://msdn.microsoft.com/en-us/library/hh924831%28v=vs.110%29.aspx Configuring Timeout Values on a Binding] for information about Timeout configuration.
| + | |
− | * Services (used for the data service and the session management service)
| + | |
− | * Clients (the client definition is used by the data service to connect to the session management service defined in the appSettings)
| + | |
− | :The client's endpoint addresses are ignored as they are replaced by the settings provided in appSettings at service runtime!
| + | |
− | | + | |
− | <source lang="xml">
| + | |
− | <system.serviceModel>
| + | |
− | <behaviors>
| + | |
− | <serviceBehaviors>
| + | |
− | <behavior name="httpBehavior">
| + | |
− | <!-- To avoid disclosing metadata information, set the value below to false and remove the metadata endpoint above before deployment -->
| + | |
− | <serviceMetadata httpsGetEnabled="true"/>
| + | |
− | <!-- To receive exception details in faults for debugging purposes, set the value below to true. Set to false before deployment to avoid disclosing exception information -->
| + | |
− | <serviceDebug includeExceptionDetailInFaults="true"/>
| + | |
− | </behavior>
| + | |
− | </serviceBehaviors>
| + | |
− | <endpointBehaviors>
| + | |
− | <behavior name="httpBehavior">
| + | |
− | <webHttp/>
| + | |
− | </behavior>
| + | |
− | </endpointBehaviors>
| + | |
− | </behaviors>
| + | |
− | <bindings>
| + | |
− | <webHttpBinding>
| + | |
− | <binding transferMode="Streamed" name="WebHttpBinding_UBIKContent" sendTimeout="00:05:00" maxBufferPoolSize="67108864" maxReceivedMessageSize="67108864" maxBufferSize="67108864" receiveTimeout="01:00:00">
| + | |
− | <security mode="Transport">
| + | |
− | <transport clientCredentialType="None"/>
| + | |
− | </security>
| + | |
− | </binding>
| + | |
− | </webHttpBinding>
| + | |
− | <basicHttpBinding>
| + | |
− | <binding name="BasicHttpBinding_IUSAM" closeTimeout="00:01:00" openTimeout="00:01:00" receiveTimeout="00:10:00" sendTimeout="00:01:00" allowCookies="false" bypassProxyOnLocal="false" hostNameComparisonMode="StrongWildcard"
| + | |
− | maxBufferSize="65536" maxBufferPoolSize="524288" maxReceivedMessageSize="65536" messageEncoding="Text" textEncoding="utf-8" transferMode="Buffered" useDefaultWebProxy="true">
| + | |
− | <readerQuotas maxDepth="32" maxStringContentLength="8192" maxArrayLength="16384" maxBytesPerRead="4096" maxNameTableCharCount="16384"/>
| + | |
− | <security mode="None">
| + | |
− | <transport clientCredentialType="None" proxyCredentialType="None" realm=""/>
| + | |
− | <message clientCredentialType="UserName" algorithmSuite="Default"/>
| + | |
− | </security>
| + | |
− | </binding>
| + | |
− | </basicHttpBinding>
| + | |
− | <wsHttpBinding>
| + | |
− | <binding name="WSHttpBinding_IUSAM" closeTimeout="00:01:00" openTimeout="00:01:00" receiveTimeout="00:10:00" sendTimeout="00:01:00" bypassProxyOnLocal="false" transactionFlow="false" hostNameComparisonMode="StrongWildcard"
| + | |
− | maxBufferPoolSize="524288" maxReceivedMessageSize="65536" messageEncoding="Text" textEncoding="utf-8" useDefaultWebProxy="true" allowCookies="false">
| + | |
− | <readerQuotas maxDepth="32" maxStringContentLength="8192" maxArrayLength="16384" maxBytesPerRead="4096" maxNameTableCharCount="16384"/>
| + | |
− | <reliableSession ordered="true" inactivityTimeout="00:10:00" enabled="false"/>
| + | |
− | <security mode="Transport">
| + | |
− | <transport clientCredentialType="None" proxyCredentialType="None" realm=""/>
| + | |
− | <message clientCredentialType="Windows" negotiateServiceCredential="true"/>
| + | |
− | </security>
| + | |
− | </binding>
| + | |
− | <binding name="WSHttpBinding_UBIKContent" maxReceivedMessageSize="67108864" receiveTimeout="01:00:00">
| + | |
− | <security mode="Transport">
| + | |
− | <transport clientCredentialType="None"/>
| + | |
− | </security>
| + | |
− | </binding>
| + | |
− | </wsHttpBinding>
| + | |
− | </bindings>
| + | |
− | <serviceHostingEnvironment multipleSiteBindingsEnabled="true" minFreeMemoryPercentageToActivateService="0"/>
| + | |
− | <services>
| + | |
− | <service name="UBIK.Service.UBIKContent" behaviorConfiguration="httpBehavior">
| + | |
− | <endpoint address="" behaviorConfiguration="httpBehavior" binding="webHttpBinding" bindingConfiguration="WebHttpBinding_UBIKContent" contract="UBIK.Service.IUBIKContent"/>
| + | |
− | <endpoint address="/SOAP" binding="wsHttpBinding" bindingConfiguration="WSHttpBinding_UBIKContent" contract="UBIK.Service.IUBIKContent"/>
| + | |
− | </service>
| + | |
− | <service name="UBIK.Service.USAM" behaviorConfiguration="httpBehavior">
| + | |
− | <endpoint address="" binding="webHttpBinding" behaviorConfiguration="httpBehavior" bindingConfiguration="WebHttpBinding_UBIKContent" contract="UBIK.Service.IUSAM"/>
| + | |
− | <endpoint address="/SOAP" binding="wsHttpBinding" bindingConfiguration="WSHttpBinding_IUSAM" contract="UBIK.Service.IUSAM"/>
| + | |
− | </service>
| + | |
− | </services>
| + | |
− | <client>
| + | |
− | <endpoint address="a" binding="basicHttpBinding" bindingConfiguration="BasicHttpBinding_IUSAM" contract="USAMService.IUSAM" name="BasicHttpBinding_IUSAM"/>
| + | |
− | <endpoint address="a" binding="wsHttpBinding" bindingConfiguration="WSHttpBinding_IUSAM" contract="USAMService.IUSAM" name="WSHttpBinding_IUSAM"/>
| + | |
− | </client>
| + | |
− | </system.serviceModel>
| + | |
− | </source>
| + | |
− | | + | |
− | ===system.webServer===
| + | |
− | | + | |
− | This does not have to edited in general, except the setting for the maximum allowed size of received content. This can be changed by editing the value "maxAllowedContentLength" within the section "requestFiltering/requestLimits".
| + | |
− | | + | |
− | <source lang="xml">
| + | |
− | <system.webServer>
| + | |
− | <modules runAllManagedModulesForAllRequests="true" />
| + | |
− | <directoryBrowse enabled="true" />
| + | |
− | <validation validateIntegratedModeConfiguration="false" />
| + | |
− | <security>
| + | |
− | <requestFiltering>
| + | |
− | <requestLimits maxAllowedContentLength="524288000"/>
| + | |
− | </requestFiltering>
| + | |
− | </security>
| + | |
− | </system.webServer>
| + | |
− | </source>
| + | |