【发布时间】:2015-10-14 22:33:25
【问题描述】:
我在 Windows 7 64 位的 IIS 7.5 上有 Web api WCF RESTfull 服务器。 我正在尝试通过 PUT 方法更新一条记录,但出现错误 405。我尝试在我的 Web.Config 中允许 PUT 动词,如下所示:
<system.webServer>
<modules>
<remove name="WebDAVModule" />
</modules>
<handlers>
<remove name="WebDAV" />
<remove name="ExtensionlessUrlHandler-ISAPI-4.0_32bit" />
<remove name="ExtensionlessUrlHandler-ISAPI-4.0_64bit" />
<remove name="ExtensionlessUrlHandler-Integrated-4.0" />
<add name="ExtensionlessUrlHandler-Integrated-4.0" path="*." verb="*" type="System.Web.Handlers.TransferRequestHandler" resourceType="Unspecified" requireAccess="Execute" preCondition="integratedMode,runtimeVersionv4.0" />
<add name="ExtensionlessUrlHandler-ISAPI-4.0_64bit" path="*." verb="*" modules="IsapiModule" scriptProcessor="C:\Windows\Microsoft.NET\Framework64\v4.0.30319\aspnet_isapi.dll" resourceType="Unspecified" requireAccess="Execute" preCondition="classicMode,runtimeVersionv4.0,bitness64" responseBufferLimit="0" />
<add name="ExtensionlessUrlHandler-ISAPI-4.0_32bit" path="*." verb="*" modules="IsapiModule" scriptProcessor="C:\Windows\Microsoft.NET\Framework\v4.0.30319\aspnet_isapi.dll" resourceType="Unspecified" requireAccess="Execute" preCondition="classicMode,runtimeVersionv4.0,bitness32" responseBufferLimit="0" />
<remove name="OPTIONSVerbHandler" />
<remove name="TRACEVerbHandler" />
</handlers>
....
如您所见,我还禁用了 WebDAV,但仍然得到 405。 有人有建议吗?
【问题讨论】:
-
尝试通知 iis 在所有模块中应用删除 WebDAV,修改这些行:
我想类似的问题和这个sintax工作得很好。这里有一个关于 runAllManagedModulesForAllRequests 的问题:stackoverflow.com/questions/11048863/… -
谢谢,但没用。
-
所有动词都会出现这种情况,还是可以执行 GET 调用?我检查了我的 web.config,它几乎等于你的,唯一的区别是我指定了动词而不是“”,就像这样:
我不认为这是这里的问题,但你可以试试。 -
我已经尝试过特定的动词,GET 和 POST 确实有效。也许我的问题更基本。在我的 IIS 中,我将服务器添加为站点并设置了绑定(我可以毫无问题地使用 GET 和 POST)我向服务器发送和接收 JSON,是否应该添加 MIME 类型或其他内容?...
-
我从来不需要配置 MIME,但可以看看。我在我的书签中发现这个链接可能会有所帮助,尽管我认为你已经尝试过直接在 IIS 上配置:evolutionarydeveloper.blogspot.com.br/2012/07/…