我有一个在带有MVC 4.0的.NET 4.0上运行的ASP.NET Web API应用程序。这是在IIS 7.5,Windows Server 2008 R2 Datacenter Edition上运行。
当我向GET
发出HTTP myserver/api
请求时,我会收到包含HTTP状态代码200
(如果没有登录,则为401
)并具有相应内容的响应。< / p>
但是当我向同一个网址发出HTTP OPTIONS
请求时,我总是会收到状态代码为200
的响应和一个空的响应正文(Content-length = 0
)。
当我向不存在的网址(例如OPTIONS
)发出HTTP myserver/api/foo
请求时,我也会收到此回应。
我的OPTIONS
文件中允许使用web.config
动词。
问题仅存在于一台服务器上,其他服务器正常工作。
为什么会这样?
答案 0 :(得分:3)
IIS有一个默认的OPTIONSVerbHandler,可能会在MVC之前捕获请求。 如果删除该处理程序,则应用程序应处理该请求并返回正确的响应。
<system.webServer>
<handlers>
<remove name="OPTIONSVerbHandler" />