ASP.NET Core 2. Webサイトには、UIを強化するための簡単なWeb APIメソッドもいくつかあります。
Web API呼び出しは、ローカルでIIS Expressの下で実行しているときは正常に機能しますが、IIS 8.5本番Webサーバーにデプロイすると、 HTTP DELETE
およびPUT
リクエストを行う際の次のエラー...
405 Method Not Allowed
いくつかのWeb検索の後、IIS WebDAVモジュールの削除を提案する投稿がいくつか見つかりました。 IIS(これはサーバーです)でこれを無効にし、次のことも試しました。
Allow verb filtering = False
aspNetCore
、WebDAV
およびExtensionlessUrlHandler-Integrated-4.0
上記の手順のいずれも、問題を解決していません。
どんなアドバイス/指示も大歓迎です。
数時間の調査と試行錯誤の後、修正は非常に簡単なようです。 Web.config
ファイルを。NET Core 2.アプリケーションに追加します。
<?xml version="1.0" encoding="utf-8"?>
<configuration>
<!-- To customize the asp.net core module uncomment and edit the following section.
For more info see https://go.Microsoft.com/fwlink/?linkid=838655 -->
<system.webServer>
<modules>
<remove name="WebDAVModule" />
</modules>
<handlers>
<remove name="aspNetCore" />
<remove name="WebDAV" />
<!-- I removed the following handlers too, but these
can probably be ignored for most installations -->
<remove name="ExtensionlessUrlHandler-Integrated-4.0" />
<remove name="OPTIONSVerbHandler" />
<remove name="TRACEVerbHandler" />
<add name="aspNetCore"
path="*"
verb="*"
modules="AspNetCoreModule"
resourceType="Unspecified" />
</handlers>
<aspNetCore processPath="%LAUNCHER_PATH%"
arguments="%LAUNCHER_ARGS%"
stdoutLogEnabled="false"
stdoutLogFile=".\logs\stdout" />
</system.webServer>
</configuration>
お役に立てれば。
これが私のために働いたものでした(netcore 2.0)
<system.webServer>
<modules runAllManagedModulesForAllRequests="false">
<remove name="WebDAVModule" />
</modules>
</system.webServer>
ここにあります: https://www.ryadel.com/en/error-405-methods-not-allowed-asp-net-core-put-delete-requests/
IISサーバーからWebDAV発行を削除します。そのインターネット情報サービスの下に来る->一般的なHTTP機能
WebDavがまったく有効にならないようにするには、-removeApplicationHost.configからの次のエントリ:
<add name="WebDAVModule" />
エントリはモジュールセクションにあります。
構成の正確な場所:
C:\ Windows\System32\inetsrv\config\applicationHost.config
これは、.Net Core 2.1でうまく機能しました
私にとっては、APIではなくクライアントドメインに投稿しようとしていることに気づいた後、問題を解決しました。 [facepalm]