ASP.NET Ручки PUT/DELETE
Это относится как к ASP.NET вообще, так и к Web API.
Как мы можем обрабатывать глаголы PUT/DELETE без, что позволяет использовать RAMMFAR (RunAllManagedModulesForAllRequests).
Я не могу настроить сопоставление обработчиков в IIS, поскольку мой сайт размещен на веб-роли Azure, и любые изменения, которые я делаю, не будут сохраняться.
Ответы
Ответ 1
@Ответ Александра поставил меня на правильный путь. Должен добавить следующее, чтобы получить DELETE/PUT, обработанный 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>
Ответ 2
FWIW, мы изменили шаблоны проектов MVC/Web API, чтобы разрешить все общие HTTP-глаголы, используя именно этот механизм выше. Это изменение будет доступно в следующем официальном падении (которое будет RTM). Это будет работать по умолчанию.
Ответ 3
Уже пытались разрешить глаголы в разделе System.WebServer
в web.config?
Что-то вроде этого:
<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>