ASP.NET句柄放置/删除谓词
这通常适用于ASP.NET,但也适用于Web API 在不启用RAMMFAR(RunAllManagedModulesForAllRequests)的情况下,我们如何处理PUT/DELETE谓词ASP.NET句柄放置/删除谓词,asp.net,iis,asp.net-web-api,Asp.net,Iis,Asp.net Web Api,这通常适用于ASP.NET,但也适用于Web API 在不启用RAMMFAR(RunAllManagedModulesForAllRequests)的情况下,我们如何处理PUT/DELETE谓词 我无法在IIS中配置处理程序映射,因为我的站点托管在Azure Web角色上,我所做的任何更改都不会被持久化。是否已尝试允许Web.config中的System.WebServer节中的动词 大概是这样的: <System.WebServer> <handlers>
我无法在IIS中配置处理程序映射,因为我的站点托管在Azure Web角色上,我所做的任何更改都不会被持久化。是否已尝试允许Web.config中的
System.WebServer
节中的动词
大概是这样的:
<System.WebServer>
<handlers>
<remove name="ExtensionlessUrlHandler-Integrated-4.0" />
<add name="ExtensionlessUrlHandler-Integrated-4.0"
path="*."
verb="GET,HEAD,POST,DEBUG,PUT,DELETE"
modules="IsapiModule"
scriptProcessor="C:\Windows\Microsoft.NET\Framework64\v4.0.30319\aspnet_isapi.dll"
resourceType="Unspecified"
requireAccess="Script"
preCondition="classicMode,runtimeVersionv4.0,bitness64"
responseBufferLimit="0" />
</handlers>
</System.WebServer>
@Alexander的回答让我走上了正确的道路。必须添加以下内容才能由ASP.NET处理删除/放置:
<system.webServer>
<modules runAllManagedModulesForAllRequests="false"/>
<handlers>
<remove name="ExtensionlessUrl-Integrated-4.0" />
<add name="ExtensionlessUrl-Integrated-4.0"
path="*."
verb="GET,HEAD,POST,DEBUG,DELETE,PUT"
type="System.Web.Handlers.TransferRequestHandler"
preCondition="integratedMode,runtimeVersionv4.0" />
</handlers>
</system.webServer>
FWIW,我们已经修改了MVC/WebAPI项目模板,允许所有公共HTTP谓词完全使用上述机制。更改将在下一次正式发布(即RTM)中提供。默认情况下它会工作。不幸的是,这似乎不起作用-我仍然得到404。请添加这一个,它没有任何区别,但您的回答确实提示我查看applicationHost.config。我已经发布了最终对我有用的东西。我从来没有这样做过。我在IIS express常见问题解答中找到了它。我不知道这将如何使用。输入错误?我在VS 2012中创建了一个新的MVC4应用程序,并从web.config中复制了设置。请添加以下内容:“您可以修改%userprofile%\documents\IISExpress\config”文件夹中的IIS Express“applicationHost.config”。除元素外,我已在上面显示了所有内容。当我添加这个时,它开始工作了。这个版本是特定的吗?在IIS 8.0中,它会导致500内部服务器错误