2012-09-05 15 views
9

MVC 4アプリケーションでPUTを使用しようとしていますが、405エラーが発生しています。私のルーティングでMVC 4. IIS 7.5のPUT戻り405

私はPUTやPOSTを許可するルート上の制約があり、エンドポイントが働くPOSTに、PUTは、私がここにここにアドバイスASP.NET Web API returns 404 for PUT only on some serversASP.NET MVC got 405 error on HTTP DELETE request?

を追ってきた405

で失敗します

私はIISからWeDAVも削除しましたが、私はまだ405を手に入れています。誰も他の提案はありますか?

また、私はこのアドバイスASP.NET Web API - PUT & DELETE Verbs Not Allowed - IIS 8、まだ運が続いてきた、そのために、(Visual Studioの2012)IIS 8上に正確に同じ問題を抱えている

答えて

1

私はWebAPIのを使用しています上記の私が言ったようにWebAPIはどの動詞がどのメソッドにマップされているかのような「難解な」ものであるようです。私は、期待通りにルーティングが動作するように、適切なメソッドに[HttpPut、Get、Delete、Post]の[HttpXXX]属性を追加する必要がありました。

25

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

これは、= "true" をrunAllManagedModulesForAllRequests、働いていたが、推奨されませんでした。

WebDAVModuleのモジュールを削除したが、それでも機能しなかった多くの修正が含まれています。私はハンドラも削除し、最後にPOST GET PUT DELETEという動詞を使用することができました。

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

<modules> 
    <remove name="WebDAVModule" /> 
</modules> 
<handlers> 
    <remove name="WebDAV" /> 
</handlers> 
+1

マイウェブを。 configにはすでにrunAllManagedModulesForAllRequests = "true"が設定されています。上記のWebDAVの削除行を追加すると、私にとってはうまくいった。 – Jbecwar

+0

私はすでにこれをやったと思っていましたが、モジュールではなくハンドラだけを削除しました。ありがとう! –

+0

これは私のために働く。 +1 –

0

iisで自分のサイトをクリックすると、「IIS」の最後のエントリとして「WebDAVオーサリングルール」が表示されました。ダブルクリックすると「The WebDAV feature is disabled」と表示されました。右側に警告が表示され、「WebDAVを有効にする」というリンクがありましたが、それでも機能しませんでした。私はハンドラセクションが問題ではありませんでしたし、私のモジュールは、このように見えた、上記Stanomaticの提案に従っ:

<modules runAllManagedModulesForAllRequests="true" /> 

私はちょうどそれに削除を追加し、それは私の問題修正:

<modules runAllManagedModulesForAllRequests="true"> 
    <remove name="WebDAVModule" /> 
</modules> 
関連する問題