我有一个IIS7.5框运行一个asp.net mvc 3应用程序。 应用程序接收二进制POST请求并返回二进制答案。 为了区分这个二进制数据和其他数据包,我设置了自己的MIMEtypes(我们称之为application / my.binary.data ),这个types和Content-Type头一起使用。
IIS服务器似乎不喜欢我自己的MIMEtypes,并拒绝400错误请求的数据包。 如果我将MIMEtypes更改为应用程序/八位字节stream,则可以通过IIS获得我的应用程序的答案。
如何设置IIS以允许我自己的MIMEtypes的请求?
请求数据包
POST http://my.local.domain/Page HTTP/1.1 Host: my.local.domain Content-Length: 33 Content-Type: application/my.binary.data Cache-Control: no-cache ..............p.00000000000000...
响应包:
HTTP/1.1 400 Bad Request Cache-Control: private Content-Type: text/html Server: Microsoft-IIS/7.5 X-AspNetMvc-Version: 3.0 X-AspNet-Version: 4.0.30319 X-Powered-By: ASP.NET Date: Wed, 06 Jul 2011 08:11:27 GMT Content-Length: 11 Bad Request
我终于能够通过遵循以下指南在http://www.donnfelker.com/aspnet-mvc-iis7-and-bad-request/解决问题。
我将下面的代码添加到我的web.config
<system.webServer> <httpErrors errorMode=”Detailed” /> </system.webserver>
像这样的博客这里: http : //blogs.iis.net/bills/archive/2008/03/25/how-to-add-mime-types-with-iis7-web-config.aspx可能揭示了什么你需要做的。
主要是更新应用程序web.config中的静态内容设置,以便IIS7.5知道您自己的MIMEtypes。