相关疑难解决方法(0)

IIS 7.5 +为RESTFul服务启用PUT和DELETE,无扩展

我试图了解IIS 7.5如何处理POST和PUT请求.

我正在使用OpenRasta框架编写RESTful服务.POST操作没有任何问题,但相同URL的PUT操作不会.它返回如下错误

Detailed Error Information
Module: IIS Web Core
Notification: MapRequestHandler
Handler: StaticFile
Error Code: 0x80070002
Run Code Online (Sandbox Code Playgroud)

网址如下"http://localhost/MyService/Resource.Something.manifest"

相同的设置在Visual Studio开发IIS中工作正常.

基本上默认的ExtensionlessUrlHandler不接受PUT和DELETE动词.只需要添加它们.

<add name="ExtensionlessUrlHandler-ISAPI-4.0_64bit" 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" />
Run Code Online (Sandbox Code Playgroud)

iis put openrasta

55
推荐指数
8
解决办法
9万
查看次数

WebDAV和WebAPI一起导致错误:处理程序"ExtensionlessUrlHandler-Integrated-4.0"在其模块列表中有一个错误的模块"ManagedPipelineHandler"

我在我的网站上安装并运行了WebDAV,作为虚拟子站点,我有一个MVC WebAPI站点,API工作得很好,直到我尝试向它发送PUT请求,然后我得到以下错误:

HTTP错误500.21 - 内部服务器错误

处理程序"ExtensionlessUrlHandler-Integrated-4.0"在其模块列表中有一个错误的模块"ManagedPipelineHandler"

如果我禁用WebDAV,那么一切正常,我没有错误.这仅在启用WebDAV时发生.

我的web.config中包含以下所有代码:

<system.webServer>
  <validation validateIntegratedModeConfiguration="false" />
  <modules runAllManagedModulesForAllRequests="false">
    <remove name="WebDAVModule" />
  </modules>
  <handlers>
    <remove name="WebDAV" />
    <remove name="ExtensionlessUrlHandler-ISAPI-4.0_32bit" />
    <remove name="ExtensionlessUrlHandler-ISAPI-4.0_64bit" />
    <remove name="ExtensionlessUrlHandler-Integrated-4.0" />
    <add name="ExtensionlessUrlHandler-ISAPI-4.0_32bit" path="*." verb="GET,HEAD,POST,DEBUG,PUT,DELETE,PATCH,OPTIONS" modules="IsapiModule" scriptProcessor="%windir%\Microsoft.NET\Framework\v4.0.30319\aspnet_isapi.dll" preCondition="classicMode,runtimeVersionv4.0,bitness32" responseBufferLimit="0" />
    <add name="ExtensionlessUrlHandler-ISAPI-4.0_64bit" path="*." verb="GET,HEAD,POST,DEBUG,PUT,DELETE,PATCH,OPTIONS" modules="IsapiModule" scriptProcessor="%windir%\Microsoft.NET\Framework64\v4.0.30319\aspnet_isapi.dll" preCondition="classicMode,runtimeVersionv4.0,bitness64" responseBufferLimit="0" />
    <add name="ExtensionlessUrlHandler-Integrated-4.0" path="*." verb="GET,HEAD,POST,DEBUG,PUT,DELETE,PATCH,OPTIONS" type="System.Web.Handlers.TransferRequestHandler" preCondition="integratedMode,runtimeVersionv4.0" />
  </handlers>
</system.webServer>
Run Code Online (Sandbox Code Playgroud)

我试过搞乱各种应用程序池.

我也厌倦了所有这些问题中提到的所有事情:

如何摆脱这个错误处理程序"PageHandlerFactory-Integrated"在其模块列表中有一个错误的模块"ManagedPipelineHandler"

处理程序"ExtensionlessUrlHandler-Integrated-4.0"在其模块列表中有一个错误的模块"ManagedPipelineHandler"

如何修复:处理程序"PageHandlerFactory-Integrated"在其模块列表中有一个错误的模块"ManagedPipelineHandler"

这些都没有解决我的问题,还有什么我没有尝试过吗?

webdav iis-7.5 asp.net-web-api

12
推荐指数
2
解决办法
3万
查看次数

标签 统计

asp.net-web-api ×1

iis ×1

iis-7.5 ×1

openrasta ×1

put ×1

webdav ×1