[解決済み] WebAPI Delete が動作しない - 405 Method Not Allowed (メソッドが許可されていません)
2022-07-15 04:31:33
質問
今夜、サイトが公開される予定なので、これについて何か手助けがあればありがたいのですが。
私は Delete メソッドを持つ Web API コントローラーを持っています。このメソッドは、IIS Express (Windows 8) を実行している私のローカル マシンでは正常に実行されますが、ライブ IIS サーバー (Windows Server 2008 R2) に展開するとすぐに動作しなくなり、次のエラー メッセージが表示されます。
HTTP エラー 405.0 - メソッドが許可されていません。 無効なメソッド (HTTP Verb) が使用されているため、探しているページを表示できません。
私は解決策をウェブで探し回り、最も妥当なものを実装しました。私のWeb Configは以下の設定になっています。
<system.webServer>
<validation validateIntegratedModeConfiguration="false" />
<handlers>
<remove name="ExtensionlessUrlHandler-ISAPI-4.0_32bit" />
<remove name="ExtensionlessUrlHandler-ISAPI-4.0_64bit" />
<remove name="ExtensionlessUrlHandler-Integrated-4.0" />
<add name="ExtensionlessUrlHandler-ISAPI-4.0_32bit" path="*." verb="GET,HEAD,POST,DEBUG,PUT,DELETE,PATCH,OPTIONS" modules="IsapiModule" scriptProcessor="%windir%\Microsoft.NET\Framework\v4.0.30319\aspnet_isapi.dll" preCondition="classicMode,runtimeVersionv4.0,bitness32" responseBufferLimit="0" />
<add name="ExtensionlessUrlHandler-ISAPI-4.0_64bit" path="*." verb="GET,HEAD,POST,DEBUG,PUT,DELETE,PATCH,OPTIONS" modules="IsapiModule" scriptProcessor="%windir%\Microsoft.NET\Framework64\v4.0.30319\aspnet_isapi.dll" preCondition="classicMode,runtimeVersionv4.0,bitness64" responseBufferLimit="0" />
<add name="ExtensionlessUrlHandler-Integrated-4.0" path="*." verb="GET,HEAD,POST,DEBUG,PUT,DELETE,PATCH,OPTIONS" type="System.Web.Handlers.TransferRequestHandler" preCondition="integratedMode,runtimeVersionv4.0" />
</handlers>
</system.webServer>
IISのHandler MappingsとRequest Filteringも変更してみましたが、効果がありません。IIS の WebDAV オーサリング ルールは無効になっているようですので、注意してください。
どんなアイデアでも、非常に高く評価されます。 ありがとうございます。
どのように解決するのですか?
私は最終的に解決策を見つけました もし、同じ問題に遭遇したら、web.config に以下を追加してください。
<system.webServer>
<validation validateIntegratedModeConfiguration="false"/>
<modules runAllManagedModulesForAllRequests="true">
<remove name="WebDAVModule"/> <!-- ADD THIS -->
</modules>
... rest of settings here
私はこれが役立つことを願っています
関連
-
[解決済み] Razor View Engine : 式ツリーには、動的な操作を含めることができません。
-
[解決済み] HTTPヘッダを送信した後、サーバーがステータスを設定できない IIS7.5
-
[解決済み] Kendo UI MVC用パスワードテキストボックス
-
[解決済み] JsonResultが特殊文字(apostrophe)を \u0027 としてパースしています。
-
[解決済み] Razor View throwing "The name 'model' does not exist in the current context".
-
[解決済み] [Solved] ASP.NET MVCで404を適切に処理するには?
-
[解決済み] asp.net mvc: なぜ Html.CheckBox は追加の隠された入力を生成するのですか?
-
[解決済み] X-SourceFilesヘッダーは何をするものですか?
-
[解決済み] ASP.Net MVCでRequest on Controllerをモック化する方法とは?
-
[解決済み] Web APIのPutリクエストでHttp 405 Method Not Allowedエラーが発生する
最新
-
nginxです。[emerg] 0.0.0.0:80 への bind() に失敗しました (98: アドレスは既に使用中です)
-
htmlページでギリシャ文字を使うには
-
ピュアhtml+cssでの要素読み込み効果
-
純粋なhtml + cssで五輪を実現するサンプルコード
-
ナビゲーションバー・ドロップダウンメニューのHTML+CSSサンプルコード
-
タイピング効果を実現するピュアhtml+css
-
htmlの選択ボックスのプレースホルダー作成に関する質問
-
html css3 伸縮しない 画像表示効果
-
トップナビゲーションバーメニュー作成用HTML+CSS
-
html+css 実装 サイバーパンク風ボタン
おすすめ
-
[解決済み】VS 2015でコントローラからビューを追加できない : "選択されたコードジェネレータの実行にエラーが発生しました"
-
[解決済み] Kendo UI MVC用パスワードテキストボックス
-
[解決済み] プロジェクトのデフォルトのXMLネームスペースはMSBuild XMLネームスペースである必要があります。
-
[解決済み] MVC 3 - 辞書に渡されたモデル項目の型は 'System.Collections.Generic.List`1 です。
-
[解決済み] ASP.NET MVCでリクエストスロットルを実装するための最良の方法は?
-
[解決済み】"JSONリクエストが大きすぎてデシリアライズできませんでした "の表示について
-
[解決済み】ViewModelのベストプラクティス
-
[解決済み] セキュリティ透過的なメソッド 'WebMatrix.WebData.PreApplicationStartCode.Start()' による試行。
-
[解決済み] Entity Frameworkのデータベースを再作成する方法は?
-
[解決済み] ASP.NET MVCとIIS7で生のHTTPリクエスト/レスポンスをログに記録する