Windows Server 2008 R2(VPS)上的IIS7.5 - POST请求上的错误400

时间:2011-05-30 18:21:17

标签: asp.net iis iis-7 iis-7.5

我有一台运行2008 R2和IIS 7.5的新VPS服务器。

某些客户端软件(不是浏览器)通过HTTP GET和POST请求与服务器应用程序(ASP.NET)进行通信。

在IIS7.5上,HTTP POST请求被拒绝,并显示错误:“HTTP错误400 - 请求格式错误”

相同的应用程序在IIS7上没有问题,并且在IIS6上工作了多年。

我只能假设IIS7.5做了一些额外的验证检查? 有什么方法可以关掉它们吗?我尝试了在MSDN上找到的所有设置,但到目前为止似乎没有任何工作,我甚至无法让IIS为被拒绝的请求转储日志!

不能更改客户端代码。

以下是失败的POST请求。

谢谢你, 尼科斯。

POST /NK002/Inbound.ashx?rid=0 HTTP/1.1
User-Agent: nkHTTP_1
Accept: */*
Accept-Encoding: identity; application/octet-stream; application/x-www-form-urlencoded
Host: www.nks001.com
Connection: keep-alive
Content-Length: 307

<nkXML>
  <header count="2">
    <service>Connection</service>
    <function>Initialize</function>
  </header>
  <body count="4">
    <platform>Windows</platform>
    <data>BbbFBwAAAABFPaRkAAAAAHN5aE8AAAAA</data>
    <attName_0>PoolRebel.Version</attName_0>
    <attValue_0>2</attValue_0>
  </body>
</nkXML>

1 个答案:

答案 0 :(得分:1)

问题在于您的Accept-Encoding:标头。最后两个Content-Codings无效:

application/octet-stream
application/x-www-form-urlencoded

根据IANA允许的内容编码值,您只能使用:

compress
deflate
exi
gzip
indentity
pack200-gzip
  

Hypertext Transfer Protocol (HTTP) Parameters - IANA

IIS7.5比以前的版本更严格地遵守标准。

<强>更新

进一步挖掘产生了这个论坛的讨论:

  

Thread: IIS 7.5 Accept-Encoding fails with multiple values