encountered a problem whereby the WCF Service Host does not detect the existence of the service certificate that is needed to host a WCF service.
System.InvalidOperationException: The service certificate is not provided. Specify a service certificate in ServiceCredentials.
Service Config
- <?xml version="1.0" encoding="utf-8"?>
- <configuration>
- <system.serviceModel>
- <behaviors>
- <serviceBehaviors>
- <behavior name="announcementBehavior">
- <!--The following behavior attribute is required to enable WCF serialization of large data sets -->
- <dataContractSerializer maxItemsInObjectGraph="2147483647"/>
- <serviceDiscovery>
- <announcementEndpoints>
- <endpoint kind="announcementEndpoint" address="net.tcp://localhost:8005/Announcement" binding="netTcpBinding" bindingConfiguration="RequestReplyNetTcpBinding"/>
- </announcementEndpoints>
- </serviceDiscovery>
- <serviceThrottling maxConcurrentCalls="1500" maxConcurrentSessions="1500" maxConcurrentInstances="1500"/>
- <serviceCredentials>
- <serviceCertificate findValue="WCFServer" storeLocation="LocalMachine" storeName="TrustedPeople" x509FindType="FindBySubjectName" />
- <clientCertificate>
- <authentication certificateValidationMode="PeerTrust" trustedStoreLocation="LocalMachine" revocationMode="NoCheck"/>
- </clientCertificate>
- </serviceCredentials>
- </behavior>
- </serviceBehaviors>
- </behaviors>
- <service name="Test2ServLib.IService1" behaviorConfiguration="announcementBehavior">
- <host>
- <baseAddresses>
- <add baseAddress="net.tcp://localhost:8006/Service1"/>
- </baseAddresses>
- </host>
- <endpoint binding="netTcpBinding" bindingConfiguration="RequestReplyNetTcpBinding" contract="Test2ServLib.IService1" behaviorConfiguration="LargeEndpointBehavior" />
- <bindings>
- <netTcpBinding>
- <binding name = "RequestReplyNetTcpBinding">
- <security>
- <message clientCredentialType="Certificate" />
- </security>
- </binding>
- </netTcpBinding>
- </bindings>
- </system.serviceModel>
- </configuration>