10

MVC 4 アプリケーションで PUT を使用しようとすると、405 エラーが発生します。

私のルーティングでは、PUT と POST を許可するルートに制約があり、エンドポイントへの POST は機能しますが、PUT は 405 で失敗します。

ASP.NET Web API が一部のサーバーでのみ PUT に対して 404 を返し、ここでASP.NET MVC が HTTP DELETE 要求で 405 エラーを取得しましたか?のアドバイスに従いました。

IIS から WeDAV も削除しましたが、まだ 405 が表示されます。他の提案はありますか?

IIS 8 (Visual Studio 2012 を使用) でもまったく同じ問題が発生しています。そのため、このアドバイスASP.NET Web API - PUT & DELETE Verbs Not Allowed - IIS 8に従いましたが、まだ運がありません

4

3 に答える 3

26

私のホスティング プロバイダーは WebDAV をアンインストールできませんでした。

この runAllManagedModulesForAllRequests="true" は機能しましたが、推奨されませんでした。

多くの修正には、WebDAVModule のモジュールの削除が含まれていましたが、それでも機能しませんでした。ハンドラーも削除し、最終的にすべての動詞 POST GET PUT DELETE を使用できるようになりました。

モジュールとハンドラーで WebDAVModule と WebDAV を削除します。

<modules>
    <remove name="WebDAVModule" />
</modules>
<handlers>
    <remove name="WebDAV" />
</handlers>
于 2012-11-27T05:47:25.347 に答える
1

上で述べたように、私は WebAPI を使用していますが、WebAPI は、どの動詞がどのメソッドにマップされるかについて「うるさい」ようです。[HttpXXX] 属性 (HttpPut、Get、Delete、および Post) を適切なメソッドに追加して、期待どおりにルーティングを機能させる必要がありました。

于 2012-09-06T15:03:22.250 に答える