【问题标题】:ASP.NET Handle PUT/DELETE verbsASP.NET 处理 PUT/DELETE 动词
【发布时间】:2012-06-22 11:43:26
【问题描述】:

这通常适用于 ASP.NET,但也适用于 Web API。

我们如何在不启用 RAMMFAR (RunAllManagedModulesForAllRequests) 的情况下处理 PUT/DELETE 动词。

我无法在 IIS 中配置处理程序映射,因为我的网站托管在 Azure Web 角色上,并且我所做的任何更改都不会保留。

【问题讨论】:

    标签: asp.net iis asp.net-web-api


    【解决方案1】:

    @Alexander 的回答让我走上了正轨。必须添加以下内容才能让 ASP.NET 处理 DELETE/PUT:

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

    【讨论】:

    • 请添加:“您可以修改%userprofile%\documents\IISExpress\config”文件夹中的IIS Express“applicationHost.config”。”
    • 我拥有上面显示的所有内容,除了 元素。当我添加它时,它开始工作了。
    • 这个版本是特定的吗?在 IIS 8.0 中,它会导致 500 内部服务器错误
    【解决方案2】:

    FWIW,我们已经修改了 MVC/Web API 项目模板,以允许所有常见的 HTTP 动词完全使用上述机制。该更改将在下一次正式发布(将是 RTM)中提供。这将默认工作。

    【讨论】:

    • 我在 VS 2012 中创建了一个新的 MVC4 应用程序并从 web.config 复制了设置。
    【解决方案3】:

    已经尝试在 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>
    

    【讨论】:

    • 不幸的是,这似乎不起作用 - 我仍然得到 404。
    • 请添加这个
    • 这没有任何区别,但您的回答确实促使我查看 applicationHost.config。我已经发布了最终为我工作的内容。
    • 我从来不需要这样做。我在 IIS express FAQ learn.iis.net/page.aspx/901/iis-express-faq 中找到了它
    • 不知道这将如何与 一起工作。错字?
    猜你喜欢
    • 2012-06-10
    • 2012-01-01
    • 2011-01-06
    • 2016-12-27
    • 1970-01-01
    • 2011-01-30
    • 1970-01-01
    • 2017-06-14
    相关资源
    最近更新 更多