Config Service settings
Jump to navigation
Jump to search
Back:
CSharp Reference Implementation
The Direct Config Service WCF middle tier is the backend store for the .NET Reference Implementation. It is used to CRUD domains, addresses, certificates, anchors and Dns records.
You can increase or adjust the values by changing the behavior section of your config file.
Adjust WCF Concurrency Throttling
You will typically want to increase the maxConcurrentCalls value.
Table of Contents
The Direct Config Service WCF middle tier is the backend store for the .NET Reference Implementation. It is used to CRUD domains, addresses, certificates, anchors and Dns records.
Config File
All configuration is stored in Web.config.
- The web.config checked into the source tree (csharp\config\service\web.config) contains sample configuration.
- When you deploy, you should replace this web.config with one of your own.
- Because the Config Web Service runs as a WCF service hosted in IIS, the configuration file must be named Web.config
Standard Config Sections
Make sure your config file contains the Standard Direct Config Sections
<configuration> <configSections> <section name="logging" type="Health.Direct.Common.Diagnostics.LogFileSection, Health.Direct.Common" /> <section name="ioc" type="Health.Direct.Common.Container.IocContainerSection, Health.Direct.Common" /> <section name="container" type="Health.Direct.Common.Container.SimpleContainerSection, Health.Direct.Common" /> .... </configSections> ... <configuration>
Connect String
/configuration/connectionStrings (Required)
<configuration> ... <connectionStrings> <add name="configStore" connectionString="Data Source=.\SQLEXPRESS;Initial Catalog=DirectConfig;Integrated Security=SSPI;"/>
AppSettings
/configuration/appSettings
<configuration> ... <appSettings> <add key="queryTimeout" value="00:00:10" /> </appSettings> ...
key |
Required |
Type |
Default |
Description |
queryTimeout |
No |
Timespan |
00:00:05 |
5 seconds |
Logging
/logging (Required)
Your customized logging using the logging section.
<configuration> ... <logging>...
WCF
The service implements 5 individual Services:
CertificateService
Endpoints:
- Certificates
- Anchors
DomainManager
Endpoints:
- Domains
- Addresses
- DnsRecords
SettingsManager
Endpoints:
- Blobs
- Properties
AuthManager
Endpoints:
- Authentication
MonitorService (V1.1)
- Outgoing message track
- Incoming notification track and correlate
Bindings
Make sure your configuration contains the following WCF Bindings.
- Tested the system with basicHttpBinding.
- The behavior with other bindings is not known - currently there are no plans to try them.
<system.serviceModel> <services> <service behaviorConfiguration="Health.Direct.Config.Service.CertificateServiceBehavior" name="Health.Direct.Config.Service.CertificateService"> <endpoint address="Certificates" binding="basicHttpBinding" contract="Health.Direct.Config.Service.ICertificateStore" /> <endpoint address="Anchors" binding="basicHttpBinding" contract="Health.Direct.Config.Service.IAnchorStore" /> </service> <service behaviorConfiguration="Health.Direct.Config.Service.DomainManagerService" name="Health.Direct.Config.Service.DomainManagerService"> <endpoint address="Addresses" binding="basicHttpBinding" contract="Health.Direct.Config.Service.IAddressManager" /> <endpoint address="Domains" binding="basicHttpBinding" contract="Health.Direct.Config.Service.IDomainManager" /> <endpoint address="DnsRecords" binding="basicHttpBinding" contract="Health.Direct.Config.Service.IDnsRecordManager" /> </service> <service behaviorConfiguration="Health.Direct.Config.Service.AuthManagerService" name="Health.Direct.Config.Service.AuthManagerService"> <endpoint address="Authentication" binding="basicHttpBinding" contract="Health.Direct.Config.Service.IAuthManager" /> </service> <service behaviorConfiguration="Health.Direct.Config.Service.SettingsManagerBehavior" name="Health.Direct.Config.Service.SettingsManager"> <endpoint address="Properties" binding="basicHttpBinding" contract="Health.Direct.Config.Service.IPropertyManager" /> <endpoint address="Blobs" binding="basicHttpBinding" bindingConfiguration="blobHttp" contract="Health.Direct.Config.Service.IBlobManager"/> </service> <service behaviorConfiguration="Health.Direct.Config.Service.MonitorService" name="Health.Direct.Config.Service.MonitorService"> <endpoint address="Dispositions" binding="basicHttpBinding" contract="Health.Direct.Config.Service.IMdnMonitor" /> </service> </services> <bindings> <basicHttpBinding> <binding name="blobHttp" maxReceivedMessageSize="1048576"> <readerQuotas maxArrayLength="1048576"></readerQuotas> </binding> </basicHttpBinding> </bindings> <behaviors> <serviceBehaviors> <behavior name="Health.Direct.Config.Service.CertificateServiceBehavior"> <serviceMetadata httpGetEnabled="true" /> <serviceDebug includeExceptionDetailInFaults="true" /> </behavior> <behavior name="Health.Direct.Config.Service.DomainManagerService"> <serviceMetadata httpGetEnabled="true" /> <serviceDebug includeExceptionDetailInFaults="true" /> </behavior> <behavior name="Health.Direct.Config.Service.AuthManagerService"> <serviceMetadata httpGetEnabled="true" /> <serviceDebug includeExceptionDetailInFaults="true" /> </behavior> <behavior name="Health.Direct.Config.Service.SettingsManagerBehavior"> <serviceMetadata httpGetEnabled="true" /> <serviceDebug includeExceptionDetailInFaults="true" /> </behavior> <behavior name="Health.Direct.Config.Service.MonitorService"> <serviceMetadata httpGetEnabled="true" /> <serviceDebug includeExceptionDetailInFaults="true" /> </behavior> </serviceBehaviors> </behaviors> </system.serviceModel>
Performance & Concurrency
By default, WCF will throttle the number of concurrent calls to each service. The default is 16.You can increase or adjust the values by changing the behavior section of your config file.
Adjust WCF Concurrency Throttling
You will typically want to increase the maxConcurrentCalls value.