У нас есть веб-приложение .Net 2.0, которое использует стороннюю сборку для вызова веб-сервиса с нашей веб-страницы, работающей на сервере, на сторонний сайт.Звонок осуществляется через https.Этот код работал без проблем в течение многих лет, до 2 недель назад.Поставщик обновил свои сертификаты в течение последнего месяца.Однако ни один другой клиент не сообщил о проблеме, и некоторые наши машины работают без проблем.На некоторых наших серверах при совершении вызова мы получаем запрос был прерван: не удалось создать безопасный канал SSL / TLS.На других серверах проблем нет.Все серверы Windows 2003 работают под одной и той же кодовой базой.Мы включили трассировку .Net и зафиксировали трассировки на хорошем сервере и двух плохих.Мы убедились, что сертификат, возвращаемый на все серверы, одинаков.Трассировка .Net показывает один из вызовов InitializeSecurityContext, возвращающихся с возвращенным кодом = Illegal Message.Я проверил schannel.dll, secur32.dll и system.net.dll одинаковые версии на всех серверах.Я также подтвердил, что ЦС является доверенным (его Verisign).
На данный момент я ищу любые идеи по устранению неполадок.
Зарегистрируйте выдержки ниже.Первый от сервера, который получает ошибку.Обратите внимание, что в журналах для плохих серверов последовательность приема байтов всегда 204, 5, 2, ошибка.На хорошем сервере последовательность байтов всегда равна 204, 5, 1. Продолжение продолжается.
Плохой сервер
System.Net.Sockets Verbose: 0: [15784] ВыходСокет # 50912888 :: Send () -> 204 # 204
System.Net.Sockets Подробно: 0: [15784] Сокет # 50912888 :: Receive ()
System.Net.SocketsVerbose: 0: [15784] Данные из сокета # 50912888 :: Receive
System.Net.Sockets Verbose: 0: [15784] 00000000: 15 03 00 00 02: .....
System.Net.Sockets Verbose: 0: [15784] Выход из сокета # 50912888 :: Receive () -> 5 # 5
System.Net.Sockets Verbose: 0: [15784] Сокет # 50912888:: Receive ()
System.Net.Sockets Verbose: 0: [15784] Данные из сокета # 50912888 :: Receive
System.Net.Sockets Verbose: 0: [15784] 00000005:02 28:. (
System.Net.Sockets Verbose: 0: [15784] Выход из сокета # 50912888 :: Receive () -> 2 # 2
Информация о System.Net: 0:[15784] InitializeSecurityContext (credential = System.Net.SafeFreeCredential_SECURITY, context = 10709bc8: 189fc88, targetName = transform.documentmailbox.net, inFlags = ReplayDetect, SequenceDetect, Конфиденциальность, AllocateMemory, InitManualCredValidation)
Информация о System.Net: исходная информация об уровне безопасности (15784)= 2, длина Out-Buffer = 0, возвращенный код = IllegalMessage).
System.Net.Sockets Verbose: 0: [15784] Сокет # 50912888 :: Dispose ()
Система.Чистая ошибка: 0: [15784] Исключение в HttpWebRequest # 44205226 :: - Запрос был прерван: Не удалось создать безопасный канал SSL / TLS.
Ошибка System.Net: 0: [15784] Исключение вHttpWebRequest # 44205226 :: EndGetRequestStream - Запрос был прерван: Не удалось создать безопасный канал SSL / TLS.
Хороший сервер:
System.Net.Sockets Verbose: 0: [0244] Выход из сокета # 56654665 :: Send () -> 204 # 204
System.Net.Sockets Verbose: 0: [0244] Сокет # 56654665 :: Receive ()
System.Net.Sockets Verbose: 0: [0244] Данные дляm Socket # 56654665 :: Receive
System.Net.Sockets Verbose: 0: [0244] 00000000: 14 03 00 00 01: .....
System.Net.Sockets Verbose: 0: [0244] Выход из сокета # 56654665 :: Receive () -> 5 # 5
System.Net.Sockets Verbose: 0: [0244] Сокет # 56654665 :: Receive ()
System.Net.Sockets Verbose: 0: [0244] Данные из сокета # 56654665 :: Receive
System.Net.Sockets Verbose: 0: [0244] 00000005: 01:.
System.Net.Sockets Verbose: 0: [0244] Выход из сокета # 56654665 :: Receive () -> 1# 1
Информация о System.Net: 0: [0244] InitializeSecurityContext (credential = System.Net.SafeFreeCredential_SECURITY, context = b2310: 174420, targetName = transform.documentmailbox.net, inFlags = ReplayDetect, ConfortIDIttect, SequenceDetectAllocateMemory, InitManualCredValidation)
Информация о System.Net: 0: [0244] InitializeSecurityContext (количество входящих буферов = 2, длина внешнего буфера = 0, возвращаемый код = ContinueNeeded).
Система.Net.Sockets Verbose: 0: [0244] Socket # 56654665 :: Receive ()
System.Net.Sockets Verbose: 0: [0244] Данные из сокета # 56654665 :: Receive
System.Net.Sockets Verbose: 0: [0244] 00000000: 16 03 00 00 38: .... 8
System.Net.Sockets Verbose: 0: [0244] Выход из сокета # 56654665 :: Receive() -> 5 # 5
System.Net.Sockets Verbose: 0: [0244] Сокет # 56654665 :: Receive ()
System.Net.Sockets Verbose: 0: [0244] Данные из сокета # 56654665 :: Receive
System.Net.Sockets Verbose: 0: [0244]00000005: C0 44 EB FF 6A 88 AD DA-2C 5A 74 99 AD 11 CE 16: .D..j ..., Zt .....
System.Net.Sockets Подробно: 0:[0244] 00000015: 4B 10 29 D7 DD 4E A0 83-E9 DE EB BD 37 2F 81 FB: K.) .. N ...... 7 /..
System.Net.SocketsПодробно: 0: [0244] 00000025: D4 9C 99 6C FB A0 CA 6B-1A 4E 7A CA B9 39 1B 91: ... l ... k.Nz..9 ..
Система.Net.Sockets Verbose: 0: [0244] 00000035: 7B 26 B1 01 8C FD C1 08-: {& ......
System.Net.Sockets Verbose: 0: [0244] Выход из гнезда# 56654665 :: Receive () -> 56 # 56
Информация о System.Net: 0: [0244] InitializeSecurityContext (credential = System.Net.SafeFreeCredential_SECURITY, context = b2310: 174420, targetName = transform.documentmailbox.net, inFlags = ReplayDetect, SequenceDetect, Конфиденциальность, AllocateMemory, InitManualCredValidation)
Информация о System.Netrmation: 0: [0244] InitializeSecurityContext (количество входящих буферов = 2, длина внешнего буфера = 0, возвращенный код = OK).