IIS不允许放置一个特定的服务

时间:2017-05-26 06:05:10

标签: c# wcf iis-8

我们在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参数...

1 个答案:

答案 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>