在IIS7.5上找不到ServiceStack的PUT处理程序

时间:2012-04-23 14:09:02

标签: iis-7.5 servicestack

我目前正在使用serviceStack来创建托管在MVC Web应用程序中的基于REST的服务。

到目前为止,ServiceStack已经令人惊叹,我已经实现了大部分我想做的工作。所有这些都适用于IISExpress。

我现在已经转移到IIS 7.5了,我在执行PUT时得到400错误,即“找不到请求处理程序”。 GET工作正常,在IISExpress上PUT和GET都能正常工作。

在IISExpress上,这一切都有效。

有什么想法吗?

1 个答案:

答案 0 :(得分:9)

有关从NancyFx WebFx ASP.NET documentation获取的IIS + PUT / DELETE谓词的一些信息:

默认情况下,IIS 6不支持PUT和DELETE谓词。要启用此功能,您需要将通配符映射添加到Nancy应用程序的虚拟目录 - 阅读本文档中的“IIS6无扩展名URL”部分:http://haacked.com/archive/2008/11/26/asp.net-mvc-on-iis-6-walkthrough.aspx

尝试在IIS 7 / 7.5上发出PUT / DELETE请求时,您可能会收到“405 Not allowed”页面。解决此问题的一种方法是删除web.config中的WebDAVModule。

<system.webServer>
    <modules runAllManagedModulesForAllRequests="true">
      <remove name="WebDAVModule" />
    </modules>  
</system.webserver>

Soft PUT / DELETE - 模拟HTTP动词

ServiceStack还支持X-Http-Method-Override HTTP标头,允许您simulate a PUT or DELETE with a POST(反之亦然)。