1. ホーム
  2. iis

[解決済み] 「IIS7.5でPUTメソッドに「405メソッドは許可されていません」と表示される。

2022-06-10 21:40:30

質問

私は WebClient 型を使って、*.cab ファイルをサーバーにアップロードしています。サーバー側では、以下のようにPUTメソッドで*.cabファイル用のHTTPハンドラを登録しました。

 <add name="ResultHandler" path="*.cab" verb="PUT" type="FileUploadApplication.ResultHandler" resourceType="Unspecified" requireAccess="Script" preCondition="integratedMode" />

しかし、いつも "405 method not allowed" というエラーが表示されます。レスポンスでは、許可されたメソッドは以下の通りです。

Headers = {Allow: GET, HEAD, OPTIONS, TRACE
Content-Length: 1293
Content-Type: text/html
Date: Fri, 27 May 2011 02:08:18 GMT
Server: Microsoft-IIS/7.5
X-Powered-By: ASP.NET}

Web アプリケーションの IIS リクエスト フィルタリングで PUT メソッドを明示的に許可しても、同じエラーが発生します。

私は、これは IIS に関連する問題だと思います。どなたか、この件に光を当ててくださることを期待しています。

どのように解決するのですか?

Failed Request Tracingを有効にしたところ、以下の情報が得られました。

 <EventData>
  <Data Name="ContextId">{00000000-0000-0000-0F00-0080000000FA}</Data>
  <Data Name="ModuleName">WebDAVModule</Data>
  <Data Name="Notification">16</Data>
  <Data Name="HttpStatus">405</Data>
  <Data Name="HttpReason">Method Not Allowed</Data>
  <Data Name="HttpSubStatus">0</Data>
  <Data Name="ErrorCode">0</Data>
  <Data Name="ConfigExceptionInfo"></Data>
 </EventData>

というわけで、IISからWebDAVModuleをアンインストールしたら、すべてうまくいきました〜。

IISのトレース機能はとても助かります。