2015-07-15 2 views
3

У меня есть консольное приложение C#, которое использует webservice (общедоступный веб-сервис правительства). Чтобы сделать это, я добавил ссылку на Webservice в своем C# -Project, вызвал соответствующие методы, и все работает нормально. За исключением одного ПК.https request error on winXP

Это ПК с Windows XP с пакетом обновления 2 (SP2), я установил .NET Framework 4 (который является целевой средой моего приложения). Когда я вызываю один и тот же инструмент командной строки, я всегда получаю сообщение об ошибке. 100% процентов тот же инструмент с одинаковыми параметрами отлично работает на всех других клиентах (Windows 7, Windows 8, Windows 8.1, даже другие компьютеры под управлением Windows XP)!?!?!?

Сообщение об ошибке:

Необработанное исключение: System.ServiceModel.CommunicationException: Произошла ошибка при создании запроса на HTTP, чтобы https://adress.com/services/TheServiceWSI.

Это может быть связано с тем, что сертификат сервера не правильно настроен с HTTP.SYS в случае HTTPS. Это также может быть вызвано несоответствием привязки безопасности между клиентом и сервером. ---> System.Net.WebException: базовое соединение было закрыто: при отправке произошла непредвиденная ошибка. ---> System.IO.IOException: получено непредвиденное EOF или 0 байтов из транспортного потока.

Я пробовал:

  • деактивация FireWall
  • переустановить .NET заново framwork 4
  • деактивация antvir Software
  • установить все окна обновляет

, но не успех ...

У кого-нибудь есть идея, что может быть проблемой здесь?

Заранее благодарен!

+0

Вы знаете, что у вас есть URL-адрес invlaid (вторая косая черта после address.com) - https://adress.com//services/TheServiceWSI. Просто интересно, если XP не так терпим к тому, что это так ... –

+0

@CodeUniquely: спасибо - была просто опечаткой. отредактировано – CeOnSql

+0

Можете ли вы получить доступ к WSDL-сервису через браузер на зараженном ПК? В принципе, я бы предложил посмотреть на подключение машины, которая работает против машины, которая этого не делает. Являются ли настройки прокси-сервера одинаковыми? Можете ли вы перехватить трафик через скрипач на обеих машинах и сравнить? В противном случае выполните некоторые из [предложений от MS по проблеме] (https://support.microsoft.com/en-us/kb/915599) –

ответ

1

TL; DR; Убедитесь, что установки XP полностью исправлены с помощью SP3 и всех исправлений безопасности. Было исправлено множество уязвимостей SSL/TLS.

Я признаю эту проблему, это может быть связано с устранением уязвимостей BEAST (хотя это может быть и один из других уязвимостей, упомянутых в другом ответе). После того, как Apple реализовала смягчение с их помощью с помощью Mavericks, у меня были подобные ошибки при разговоре с более старыми службами Windows. Причина была связана с тем, как пакеты были фрагментированы, что вызвало ошибки в реализациях, которые точно не соответствовали спецификации (очевидно, Microsoft не раньше, но они сейчас).

В любом случае вам нужно сбросить SP2 и убедиться, что вы запустите SP3.

Если у вас есть контроль над сервером, вы можете попробовать disable the BEAST mitigation. Согласно этому сообщению, XP SP3 должен работать с минимизацией BEAST, так что, вероятно, это скорее академический интерес. Отключение исправлений, связанных с безопасностью, в производственной среде, вероятно, неразумно.

Как вы, вероятно, знаете, Windows XP уже давно закончила расширенную поддержку и уже более года без каких-либо обновлений безопасности.

+0

привет, спасибо за ваш ответ - я проверю эти моменты. SP3 и .NET FW4, сервер не находится под моим контролем:/ – CeOnSql

+1

большое спасибо! - УСТАНОВКА ПОСТОЯННОГО обновления AVAILABE сделало трюк. О, как я ненавижу клиентские машины, работающие на «неподдерживаемой» ОС ... – CeOnSql

1

Вот несколько простых возможностей, которые вы можете посмотреть в довольно быстро:

  1. вопрос гласит, что машина использует XP SP2, но были применены все обновления для Windows. Являются ли рабочие компьютеры XP на SP2 или SP3? .NET 4.0 был разработан для запуска на SP3, поэтому, если это возможно в вашей среде, и если вы еще этого не сделали, это было бы разумным обновлением по многим причинам.
  2. Из-за уязвимостей POODLE в конце прошлого года многие серверы отказались от поддержки SSL 3.0 (и ниже) и теперь требуют TLS 1.0 или выше. Вы можете проверить панель управления/Свойства Интернета/Дополнительно/Безопасность, чтобы просмотреть список версий SSL, установленных и включенных на проблемной машине, и убедиться, что TLS 1.0 установлен и проверен.
  3. Убедитесь, что системное время на проблемной машине примерно такое же, как у других машин (это слишком мало).
+0

Пункт 1: да SP3 и .NET 4.0 Пункт 2 и 3 : спасибо, не смотри на это! – CeOnSql

+0

Проблема решена (см. Выше) - если бы я мог отметить вас повторением в качестве ответа, по крайней мере, это было очень полезно понять и некоторые важные моменты для проверки! Большое спасибо! – CeOnSql

 Смежные вопросы

  • Нет связанных вопросов^_^