Назад | Перейти на главную страницу

Неожиданное «100 продолжений»

У меня есть 2 сервера (с использованием Windows Server 2003), которые обмениваются данными с помощью удаленного взаимодействия .Net. По некоторым архитектурным причинам у меня есть прокси между этими двумя серверами, который удаляет заголовок «Expect: 100-continue» из запроса, отправляемого с одного сервера на другой. Проблема в том, что когда прокси отправляет сообщение второму серверу без этого заголовка, целевой сервер отвечает «100 continue». Такое поведение вызывает у нас много проблем, поскольку прокси отбрасывает весь http-диалог, когда получает «100 continue». Я погуглил эту проблему и обнаружил, что в Windows Server 2003 SP1 есть ошибка, которая должна была быть исправлена ​​в SP2, но после того, как я ее установил, проблема все еще остается. Кто-нибудь знает, как исправить, или настроить http.sys так, чтобы он не отправлял "100 continue"?

попробуйте принудительно установить соединение http / 1.0 [либо перенастроив прокси, изменив код клиента или конфигурацию сервера http]. это снизит производительность [если вы, например, используете keep-alive], но должно решить проблему.

Многие прокси-серверы используют HTTP 1.0. Когда программное обеспечение на обоих концах пытается использовать возможности 1.1, все начинает сходить с ума.

В некоторых случаях, когда требуется согласование, клиент и сервер могут договориться, что 1.1 является правильным протоколом (и прокси-сервер делает вид, что соглашается). Затем, когда действительно происходит взаимодействие уровня 1.1, прокси-сервер удаляет вещи, которые он не понимает.

Переход на 1.0 с клиента обычно самый простой способ получить надежные результаты.

Если вы используете веб-службы, для изменения запроса может потребоваться вспомогательный класс. Если это то, что вы делаете, я поищу пример.