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

问题描述:

我们已经在Windows服务器上完成了IIS 8.5的全新安装。在IIS上,我们部署了4个或5个WCF服务。IIS不允许放置一个特定服务

其中一些服务有PUT请求(请稍后删除)。但是我们遇到了一个问题。在其中一个服务PUT返回“方法不允许”405错误。

现在请注意,所有与处理程序有关的服务的配置都是100%相同的(我已经验证了几次)。

其他服务也消耗PUT请求,这些也工作正常。当我对邮递员进行HEAD请求时,我只能看到GET被允许请求,该请求也应该存在为PUT

(例如,一个具有WebGet属性,一个WebInvoke配置有PUT)都位于同一个URI上。在本地从Visual Studio进行调试时,PUT请求正常工作,但是,部署后我们无法使它适用于此单一端点。

我能看到的唯一区别是,我们PUT要求不工作消耗了JSON的身体,其他的都只着眼于URI参数...

+0

https://*.com/a/6223774/4074041 – 2017-05-26 06:09:25

+0

我会考虑它,但WebDAV是没有安装 –

您可以添加ExtensionlessUrlHandler通过这样的web.config :

<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> 
+0

是的,我已经试过这一点。 请注意,它工作的其他服务具有相同的配置 –

+0

所以,我可以为您提供一个**硬的​​方式**:检查哪个处理程序获取POST请求,并添加到您的web.config'自定义httphandler'与standart IIS处理程序但允许'PUT'请求。 – 2017-05-26 06:23:02

+0

我会尽力弄清楚。 –