Мое приложение WPF (для настольных компьютеров) вызывает два типа сервисов - один сервис WCF, размещенный в нашей внутренней среде, а другой - сторонний веб-сервис.
Мое приложение использует . Net framework 4.0 . Из-за недавнего обновления windows, примененного к организации, мой сторонний веб-сервис перестал работать, и я начинаю получать эту ошибку
"System.ServiceModel.Security.SecurityNegotiationException: Could not establish secure channel for SSL/TLS with authority 'abc.net'. ---> System.Net.WebException: The request was aborted: Could not create SSL/TLS secure channel. "
, чтобы решить, что я добавил эту строку перед вызовом стороннего веб-сервиса.
ServicePointManager.SecurityProtocol = (SecurityProtocolType)3072;
И он начинает работать отлично. Однако это повлияло на мою внутреннюю службу WCF. Я начинаю получать ту же ошибку для моей службы WCF. Странная часть в том, что я не получаю ошибку каждый раз, она возникает внезапно, и когда мы перезапускаем приложение, вызов службы WCF снова начинает работать нормально.
Ошибка:
"System.ServiceModel.Security.SecurityNegotiationException: Could not establish secure channel for SSL/TLS with authority 'abc.net'. ---> System.Net.WebException: The request was aborted: Could not create SSL/TLS secure channel."
Некоторые подробности конфигурации службы WCF:
<bindings>
<wsHttpBinding>
<binding maxReceivedMessageSize="2147483647">
<readerQuotas maxDepth="32" maxStringContentLength="2147483647" maxArrayLength="2147483647" maxBytesPerRead="4096" maxNameTableCharCount="16384" />
<security mode="TransportWithMessageCredential">
<message clientCredentialType="UserName" />
</security>
</binding>
</wsHttpBinding>
</bindings>
----
<serviceBehaviors>
<behavior name="WcfServerSyncService.LocalDataCacheSyncServiceBehavior">
<serviceMetadata httpsGetEnabled="True" />
<serviceDebug includeExceptionDetailInFaults="True" />
<serviceCredentials>
<userNameAuthentication userNamePasswordValidationMode="Custom" customUserNamePasswordValidatorType="WcfServerSyncService.CustomValidator,WcfServerSyncService" />
</serviceCredentials>
</behavior>
<serviceBehaviors>
И еще одна вещь, определяющая c множество пользователей, которые получают эту ошибку, и не все. Но для этих пользователей это иногда работает, а иногда нет.
Есть предложения?