Windows 2008 サーバー IIS を使用すると、500 - 内部サーバー エラーが発生します。PUT/DELETE
私が得る応答は次のとおりです。
<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 - Not Foundが発生PUT
しDELETE
、この動作は Win7 と Win 2008 Server で一貫していました。そのために、この修正を見つけました:
私は修正を適用し、 Windows 7で動作します。しかし、その後、 win2008PUT/DELETE
サーバーのIIS 7に同じサービスを展開すると、400を取得しません。
同じコードが Windows 7 (IIS 7.5) でも完全に機能します。
そのような問題の解決の手がかりはありますか?
2012 年 8 月 29 日編集:
500-Internal Server Errorの問題は、IIS7 で障害追跡を有効にすることによって検出されます。修正はこの構成です。
<modules runAllManagedModulesForAllRequests="true">
<remove name="WebDAVModule" />
</modules>
<handlers>
<remove name="WebDAV" />
</handlers>
基本的に、モジュールから「WebDAVModule」を削除し、ハンドラーから「WebDAV」も削除する必要があります。しかし、今は古い問題の404-Not Foundに戻っています。以下の構成を行った後でも、PUT/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" />
例外的に、同じシステムの同じ IIS で (デフォルトの Web サイトではなく) 別々にホストされている同じ Web アプリケーションが完全に動作します。したがって、これは、PUT/DELETE 要求をフィルタリングする親 Web サイトの構成が原因であると思われます。
同じアイデアはありますか?