我目前正在使用serviceStack来创建托管在MVC Web应用程序中的基于REST的服务。
到目前为止,ServiceStack已经令人惊叹,我已经实现了大部分我想做的工作。所有这些都适用于IISExpress。
我现在已经转移到IIS 7.5了,我在执行PUT时得到400错误,即“找不到请求处理程序”。 GET工作正常,在IISExpress上PUT和GET都能正常工作。
在IISExpress上,这一切都有效。
有什么想法吗?
答案 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>
ServiceStack还支持X-Http-Method-Override HTTP标头,允许您simulate a PUT or DELETE with a POST(反之亦然)。