Windows 8.1 исключение общего алгоритма связи wcf
Мы столкнулись со странной проблемой с программным обеспечением, которое работает уже 5 лет. Недавно мы сменили компьютеры и сейчас работаем на Windows 8.1
Проблема: у нас есть веб-сайт, который в фоновом режиме подключается к службе wcf, использующей сертификат. Затем мы запускаем сайт и пытаемся войти в систему. Сначала мы узнали, что у нас есть исключение:
Разъем подключения был прерван. Это может быть вызвано ошибкой обработки вашего сообщения или превышением тайм-аута приема удаленным хостом, или проблемой основного сетевого ресурса. Тайм-аут локального сокета был '00:19:59.9910127'
Странное сообщение, потому что у нас это было сразу, поэтому нам не нужно было ждать 20 минут до истечения времени ожидания. Поскольку нам нужно было выяснить, что именно происходит, мы попробовали эту настройку на другом компьютере с Windows 8.1. Все работало отлично, на сайте не было никаких проблем. Затем мы решили поменять соединения и посмотреть, сможем ли мы воспроизвести, чтобы в итоге получилось так:
- Мои коллеги => хорошо
- Коллеги мои => хорошо
- Коллеги к себе => хорошо
- Моя для себя => ошибка
Затем я попытался найти ответы в журналах Windows. В системном журнале. Я обнаружил, что там, где проблемы с протоколом TLS. Windows eventid 36888, Windows eventid 36874 Затем мы искали проблемы вокруг tls из-за этих двух идентификаторов событий, но ничего не смогли найти.
Еще более странным является то, что на моей машине локально установлен толстый клиент, который подключается через те же службы wcf, и этот работает также правильно. Толстый клиент и сайт написаны на C#.
Я включил трассировку wcf для подключения веб-клиента. Я делюсь этим файлом по этой ссылке: wcf-log При открытии в Microsoft Service Trace Viewer на вкладке Действия в последнем сообщении содержится ошибка.
Клиент и сервер не могут общаться, потому что у них нет общего алгоритма
1 ответ
После долгих исследований он оказался TLS 1.2. Как только он был отключен, все работает как шарм.
Другие тесты, которые мы выполняли, когда создавали проект в.net 3.5 и точную копию в.net 4.0 В результате.net 3.5 работал как шарм, а.net 4.0 терпел неудачу, как описано выше.
В этом последнем тесте мы снова провели поиск в сети и обнаружили ссылку, которая может нам помочь. WCF.NET 4.0 не работает без TLS 1.0
Инструмент показал нам, что мы включили все, но, прочитав пост, мы увидели, что у нас может быть другая проблема, потому что у нас также был установлен SQL Server 2014 на этом компьютере. Я очень надеюсь, что если у кого-то возникнет эта проблема, он найдет этот пост. Это занимало нас 3 дня.