Я немного рассол!
При развертывании на одном из моих действующих серверов я получаю следующую ошибку, которую я не видел в предыдущих установках. Этот сервер находится за аппаратным балансировщиком нагрузки (BigIP) в нашей производственной среде, который, насколько я могу судить, является единственным отличием от предыдущих развертываний.
Невозможно запустить олицетворение, поскольку SecurityContext для роли UltimateReceiver из сообщения запроса с действием http://tempuri.org/ISomeService/GetStuff' не сопоставлено с удостоверением Windows.
Мы работаем под управлением Windows Server 2008 R2 (IIS 7.5), WCF 4.0 в пуле приложений в классическом режиме.
Ниже приведены некоторые фрагменты из моего конфигурационного файла. Могут быть некоторые опечатки, в которых я изменил имена, чтобы защитить виновных:
<service behaviorConfiguration="SomeServiceBehavior" name="SomeService">
<endpoint address="" binding="wsHttpBinding" bindingConfiguration="wsHttpBindingCert" contract="ISomeService" />
</service>
<wsHttpBinding>
<binding name="wsHttpBindingCert">
<security mode="Transport">
<transport clientCredentialType="Certificate" />
</security>
</binding>
</wsHttpBinding>
<behavior name="SomeServiceBehavior">
<serviceMetadata httpsGetEnabled="false" />
<serviceDebug includeExceptionDetailInFaults="false" />
<serviceCredentials>
<clientCertificate>
<authentication certificateValidationMode="ChainTrust" mapClientCertificateToWindowsAccount="True"/>
</clientCertificate>
<serviceCertificate findValue="somecert.domain.com" x509FindType="FindBySubjectName" storeName="My" storeLocation="LocalMachine" />
</serviceCredentials>
</behavior>
Любая помощь будет принята с благодарностью.