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

JD.*_*JD. 3 iis-7.5 servicestack

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

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

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

在IISExpress上,这一切都奏效了.

有任何想法吗?

myt*_*thz 9

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

默认情况下,IIS 6不支持PUT和DELETE谓词.要启用此功能,您需要将通配符映射添加到Nancy应用程序的虚拟目录 - 阅读本文档中的"IIS6无扩展名URL"部分:http://haacked.com/archive/2008/11/26/ asp.net-MVC上-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>
Run Code Online (Sandbox Code Playgroud)

Soft PUT/DELETE - 模拟HTTP动词

ServiceStack还支持X-Http-Method-Override HTTP Header,它允许您使用POST模拟PUT或DELETE(反之亦然).