是否可以在ASP中接受PUT http请求。NET Web窗体?例如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.NETFramework64v4.0.30319aspnet_isapi.dll" resourceType="Either" requireAccess="Script" preCondition="classicMode,runtimeVersionv4.0,bitness64" responseBufferLimit="0" />
<add name="SimpleHandlerFactory-ISAPI-4.0_32bit" path="*.ashx" verb="GET,HEAD,POST,DEBUG,PUT" modules="IsapiModule" scriptProcessor="%windir%Microsoft.NETFrameworkv4.0.30319aspnet_isapi.dll" resourceType="Either" requireAccess="Script" preCondition="classicMode,runtimeVersionv4.0,bitness32" responseBufferLimit="0" />
</handlers>
</system.webServer>
即使为处理程序设置了正确的谓词,也无法使其与.aspx文件一起工作。感谢@mason为我指明了正确的方向!
EDIT:此外,应用程序池必须以经典模式运行,而不是集成模式。感谢微软偷走了我3天的时间来解决你的未修复错误!