Gre*_*hus 30 iis-7.5 asp.net-mvc-4 asp.net-web-api
我编写了一个使用ASP.NET MVC Web API的站点,一切都运行良好,直到我把它放在登台服务器上.该站点在我的本地计算机和开发Web服务器上运行良好.开发和登台服务器都是Windows Server 2008 R2.
问题是:基本上网站工作,但有一些API调用使用HTTP PUT方法.这些失败在分段返回404,但在其他地方工作正常.
我遇到并修复的第一个问题是请求过滤.但仍然得到404.
我在IIS中打开了跟踪并遇到以下问题.
168. -MODULE_SET_RESPONSE_ERROR_STATUS
ModuleName IIS Web Core
Notification 16
HttpStatus 404
HttpReason Not Found
HttpSubStatus 0
ErrorCode 2147942402
ConfigExceptionInfo
Notification MAP_REQUEST_HANDLER
ErrorCode The system cannot find the file specified. (0x80070002)
Run Code Online (Sandbox Code Playgroud)
开发和分期时的配置是相同的,事实上整个站点是直接副本.
为什么GET和POST工作,而不是PUT?
Kev*_*man 47
对于那些没有启用WebDAV但仍然使用MVC 4的Web API来解决这个问题的人......
史蒂夫米凯洛蒂记载,为我工作的解决方案在这里.
在一天结束时,我将所有动词(verb ="*")启用到我的Web配置中的ExtensionlessUrlHandler-Integrated-4.0处理程序.
<system.webServer>
<validation validateIntegratedModeConfiguration="false" />
<modules runAllManagedModulesForAllRequests="true" />
<handlers>
<remove name="ExtensionlessUrlHandler-Integrated-4.0" />
<add name="ExtensionlessUrlHandler-Integrated-4.0" path="*." verb="*" type="System.Web.Handlers.TransferRequestHandler" resourceType="Unspecified" requireAccess="Script" preCondition="integratedMode,runtimeVersionv4.0" />
</handlers>
</system.webServer>
Run Code Online (Sandbox Code Playgroud)
Ali*_*tad 26
这些IIS服务器上安装了web-dav模块,我敢打赌它不需要安装,因为安装人员勾选了所有框.
只需从iis中删除web-dav即可.
或者使用web.config删除web dav模块:
<system.webServer>
<modules>
<remove name="WebDAVModule" />
</modules>
...
Run Code Online (Sandbox Code Playgroud)
win*_*yip 12
这似乎有很多原因.以上都不适合我.我已经在web.config中使用了所有必需的HTTP谓词的ExtensionlessUrlHandler设置.最后我不得不在IIS中进行以下更改:
Handler MappingsExtensionlessUrlHandler-ISAPI-4.0_32bit并双击Request RestrictionsPUT和DELETEOk需要的位置并Yes在Edit Script Map弹出的对话框中回答.ExtensionlessUrlHandler-ISAPI-4.0_64bit希望这有助于某人:)
小智 5
我的托管服务提供商无法卸载WebDAV,因为这会影响每个人.
这个,runAllManagedModulesForAllRequests ="true",但有效但不推荐.
许多修复包括删除WebDAVModule的模块,但仍然无法正常工作.我也删除了处理程序,最后我可以使用所有动词POST GET PUT DELETE.
删除模块和处理程序中的WebDAVModule和WebDAV.
<modules>
<remove name="WebDAVModule" />
</modules>
<handlers>
<remove name="WebDAV" />
</handlers>
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
29808 次 |
| 最近记录: |