2010-02-10 2 views
1

Я использую клиент CXF для взаимодействия с .net веб-службой, работающей на IIS 6. Этого запрос (анонимный):Используя фрагментированное кодирование в запросе POST к вебу-службе ASMX на IIS 6 генерирует 404

 
POST /EngineWebService_v1/EngineWebService_v1.asmx HTTP/1.1 
Content-Type: text/xml; charset=UTF-8 
SOAPAction: "http://.../Report" 
Accept: */* 
User-Agent: Apache CXF 2.2.5 
Cache-Control: no-cache 
Pragma: no-cache 
Host: uat9.gtios.net 
Connection: keep-alive 
Transfer-Encoding: chunked 

затем 7 кусков 4089 байт и один из 369 байт, генерирует следующий вывод после того, как первый кусок был отправлен:

 
HTTP/1.1 404 Not Found 
Content-Length: 103 
Date: Wed, 10 Feb 2010 13:00:08 GMT 
Connection: Keep-Alive 
Content-Type: text/html 

Любой знает, как получить IIS принять Chunked вход для POST ?

Благодаря

ответ

0

Chunked кодирование должно быть enabled by default. Вы можете проверить вашу установку с:

C: \ Inetpub \ AdminScripts> Cscript adsutil.vbs прибудет/W3SVC/AspEnableChunkedEncoding

404 заставляет меня задаться вопросом, если это действительно проблема с фрагментированным кодирования. Вы дважды проверяли URL?

+0

Я прошел через просмотрщик метабазы, и AspEnableChunkedEncoding включен (и не отключен нигде). У вас есть опыт в том, что AspEnableChunkedEncoding влияет на загрузку POSTed, а также на скачивание? Документы ничего не говорят о распределенных POST-сообщениях. Это не проблема с URL-адресом, а более низкий запрос. Спасибо. – 2010-02-10 14:54:08

+0

Да У меня есть только с типом = "ФАЙЛ", но это все еще HTTP POST. Что-нибудь в журнале событий? –

0

Возможно, на вашем сервере работает программа URLScan. По умолчанию URLScan настроен на отклонение запросов с заголовком transfer-encoding: и URLScan sends 404 errors (что заметно при правильной ошибке сервера).

Ошибки UrlScan v3.1 приводят к 404 ошибкам, а не 500 ошибкам. Поиск 404 ошибок в вашем журнале W3SVC будет включать в себя ошибки, вызванные , для блокировки UrlScan.

Вам нужно будет найти файл, расположенный в (путь может отличаться) C:\Windows\System32\inetsrv\URLScan\URLScan.ini. Где-то там вы найдете раздел [DenyHeaders], который будет немного похож на это (у него, вероятно, будет больше заголовков).

[DenyHeaders] 

transfer-encoding: 

Удалить transfer-encoding: из этого списка, и это должно решить вашу проблему.