我遇到500 - 內部服務器錯誤當PUT/DELETE
帶有Windows 2008服務器IIS時。我得到的迴應是:PUT和DELETE在Windows 2008服務器IIS 7和7.5中爲asp.net webapi返回404
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1"/>
<title>500 - Internal server error.</title>
<style type="text/css">
<!--
Formatting
-->
</style>
</head>
<body>
<div id="header"><h1>Server Error</h1></div>
<div id="content">
<div class="content-container"><fieldset>
<h2>500 - Internal server error.</h2>
<h3>There is a problem with the resource you are looking for, and it cannot be displayed.</h3>
</fieldset></div>
</div>
</body>
</html>
當我檢查我的WebAPI的我的自定義日誌,我發現呼叫尚未連撞服務。
我以前的經驗是404 - 未找到爲PUT
和DELETE
並且此行爲在Win7和Win 2008 Server中保持一致。對於I found this fix:
我修補程序應用和PUT/DELETE
適用於Windows 7,但在那之後在WIN2008服務器IIS 7部署相同的服務時,我沒有得到400.但我得到「500 - 內部服務器錯誤」從IIS甚至在此之前。
相同的代碼在Windows 7(IIS 7.5)上完美工作。
解決此類問題的任何線索?
編輯2012年8月29日:
通過啓用故障跟蹤在IIS7檢測500內部服務器錯誤的問題。修復就是這種配置。
<modules runAllManagedModulesForAllRequests="true">
<remove name="WebDAVModule" />
</modules>
<handlers>
<remove name="WebDAV" />
</handlers>
基本上,我們需要從模塊從處理程序中移除「WebDAVModule」,也移除「的WebDAV」。但現在我回到我的老問題404-Not Found。現在,即使具有以下配置我不能讓建成後/ DELETE工作:
<remove name="ExtensionlessUrlHandler-Integrated-4.0" />
<add name="ExtensionlessUrlHandler-Integrated-4.0" path="*" verb="GET,HEAD,POST,DEBUG,PUT,DELETE" type="System.Web.Handlers.TransferRequestHandler" resourceType="Unspecified" requireAccess="Script" preCondition="integratedMode,runtimeVersionv4.0" />
不同尋常的同一Web應用程序完美的作品在同一系統上分別託管(不屬於默認的Web站點)相同的IIS。所以我懷疑這是由於某些父母網站配置過濾PUT/DELETE請求。
任何想法都一樣嗎?
請不要將更正發佈爲評論。您可以使用問題底部的** edit **鏈接,然後解決問題。謝謝。 – Nate
看起來像這個問題沒有解決方案 – Sando