我们在Windows服务器上完成了IIS 8.5的全新安装。在IIS上,我们已经部署了4或5个WCF服务。
其中一些服务有PUT
个请求(很快就会删除)。但我们遇到了一个问题。在其中一个服务PUT
上返回“Method not allowed”405错误。
现在,请注意,有关处理程序的所有服务的配置是100%相同(我现在已经验证了几次)。
其他服务也消耗PUT
请求,这些也可以正常工作。当我向邮递员发出HEAD
请求时,我只能看到GET
允许请求,该请求也应该以{{1}}的形式存在。
(例如,一个具有WebGet属性,一个具有配置有PUT的WebInvoke)在同一URI上。从Visual Studio调试本地时,PUT
请求工作正常,但是,部署后我们无法使其适用于此单个端点。
我能看到的唯一区别是我们的PUT
请求不起作用会占用JSON主体,另一个只查看URI参数...
答案 0 :(得分:0)
您可以通过web.config 添加 ExtensionlessUrlHandler
,如下所示:
<handlers accessPolicy="Read, Script">
<remove name="WebDAV" />
<remove name="ExtensionlessUrlHandler-ISAPI-4.0_64bit" />
<add name="ExtensionlessUrlHandler-ISAPI-4.0_64bit"
path="*."
verb="GET,HEAD,POST,DEBUG,PUT,DELETE,PATCH,OPTIONS"
modules="IsapiModule"
scriptProcessor="%windir%\Microsoft.NET\Framework64\v4.0.30319\aspnet_isapi.dll"
preCondition="classicMode,runtimeVersionv4.0,bitness64"
responseBufferLimit="0" />
</handlers>