6

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が発生PUTDELETE、この動作は 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 サイトの構成が原因であると思われます。

同じアイデアはありますか?

4

4 に答える 4

4

非常によく似た問題に苦しんだ後、私はこの解決策にたどり着きました: http://www.iis.net/configreference/system.webserver/security/requestfiltering/verbs

Request Filtering 設定を使用して、IIS で PUT 動詞と DELETE 動詞をグローバルに許可することができ、問題が解決しました。これで 404.6 エラーの悪夢は終わりました。(ところで、私は webDAV をインストールしておらず、動詞を ExtensionlessUrlHandler に追加しました)

この情報が誰かの時間を節約できることを願っています。

于 2013-02-21T18:51:08.757 に答える