1

我正在使用 CXF 客户端与在 IIS 6 上运行的 .net Web 服务进行通信。此请求(匿名):

POST /EngineWebService_v1/EngineWebService_v1.asmx HTTP/1.1
内容类型:文本/xml;字符集=UTF-8
SOAPAction:“http://.../Report”
接受: */*
用户代理:Apache CXF 2.2.5
缓存控制:无缓存
Pragma:无缓存
主机:uat9.gtios.net
连接:保持活动
传输编码:分块

后跟 7 个 4089 字节的块和一个 369 字节的块,在发送第一个块后生成以下输出:

HTTP/1.1 404 未找到
内容长度:103
日期:格林威治标准时间 2010 年 2 月 10 日星期三 13:00:08
连接:保持活动
内容类型:文本/html

任何人都知道如何让 IIS 接受 POST 的分块输入?

谢谢

4

2 回答 2

0

您很可能在您的服务器上运行 URLScan。默认情况下,URLScan 配置为拒绝具有transfer-encoding:标头的请求,并且URLScan 发送 404 错误(这在适当的服务器错误中很明显)。

UrlScan v3.1 失败会导致 404 错误而不是 500 错误。在 W3SVC 日志中搜索 404 错误将包括由于 UrlScan 阻塞而导致的失败。

您将需要查看位于 (路径可能不同) 中的文件C:\Windows\System32\inetsrv\URLScan\URLScan.ini。在那里的某个地方你会发现一个[DenyHeaders]部分,看起来有点像这样(它可能会列出更多的标题)。

[DenyHeaders]

transfer-encoding:

transfer-encoding:从此列表中删除,它应该可以解决您的问题。

于 2013-09-30T11:00:40.330 回答
0

默认情况下应该启用分块编码。您可以通过以下方式检查您的设置:

C:\Inetpub\AdminScripts>cscript adsutil.vbs 获取 /W3SVC/AspEnableChunkedEncoding

404 让我想知道分块编码是否真的有问题。您是否对 URL 进行了三次检查?

于 2010-02-10T14:34:10.827 回答