如何解决是否可以在 Web Forms 中创建 http PUT 接口?
是否可以在 ASP.NET Web 窗体中接受 PUT http 请求?例如 www.test.com/Users/12345
我可以接受 GET 和 POST 没问题。在我的 web.config 中使用 rewrite 我可以将请求 URL 转发到我的 .aspx 页面,即使它没有扩展名。但是我只是收到一个 HTTP Error 405.0 - Method Not Allowed
错误。只是想知道这是 IIS 设置问题还是 ASP.NET 无法接受 PUT http 请求。我已经应用了有关禁用 WebDAV 等的所有修复程序,但它仍然不起作用。
解决方法
好的解决方案是使用通用处理程序 (*.ashx) 并将以下内容放入 web.config:
<system.webServer>
<handlers>
<remove name="SimpleHandlerFactory-ISAPI-4.0_32bit" />
<remove name="SimpleHandlerFactory-ISAPI-4.0_64bit" />
<add name="SimpleHandlerFactory-ISAPI-4.0_64bit" path="*.ashx" verb="GET,HEAD,POST,DEBUG,PUT" modules="IsapiModule" scriptProcessor="%windir%\Microsoft.NET\Framework64\v4.0.30319\aspnet_isapi.dll" resourceType="Either" requireAccess="Script" preCondition="classicMode,runtimeVersionv4.0,bitness64" responseBufferLimit="0" />
<add name="SimpleHandlerFactory-ISAPI-4.0_32bit" path="*.ashx" verb="GET,PUT" modules="IsapiModule" scriptProcessor="%windir%\Microsoft.NET\Framework\v4.0.30319\aspnet_isapi.dll" resourceType="Either" requireAccess="Script" preCondition="classicMode,bitness32" responseBufferLimit="0" />
</handlers>
</system.webServer>
根本无法使用 .aspx 文件,即使为处理程序设置了正确的动词。 感谢@mason 为我指明了正确的方向!
编辑:此外,应用程序池必须以经典模式运行,而不是集成模式。感谢 Microsoft 偷走了我 3 天的时间来解决您未修复的错误!
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。