Ошибка при использовании аутентификации по сертификату в WCF

#wcf #wshttpbinding #x509

#wcf #wshttpbinding #x509

Вопрос:

Я в затруднительном положении!

При развертывании на одном из моих действующих серверов я получаю следующую ошибку, которую я не видел при предыдущих установках. Этот сервер находится за аппаратным балансировщиком нагрузки (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>
  

Буду признателен за любую помощь.