35

誰かがこれに光を当てることができますか?私は今日一日中、これを行う方法についての情報の断片を探してインターネットを探して検索するのを無駄にしたように感じます。非常に単純なWCFRESTfulサービスを作成しました。これは基本的に概念実証です。私はその背後に単純なデータベースを持っており、アイテムを表示、作成、更新、および削除できるようにそれを機能させようとしています。現在、表示と更新のみが機能しています。後で作成に取り組みます。今のところ、削除が機能しない理由がわかりません。これまでに見つけたほとんどすべてのことから、WebDAVモジュールを無効にする必要があることがわかります。私はそれをして、それから私はPUTを動かしました。しかし、DELETEを機能させることができません。サービスを介してDELETEを呼び出そうとすると、次のエラーが発生します。

リモートサーバーが予期しない応答を返しました:(405)メソッドは許可されていません。

したがって、私のサーバーのどこかでDELETE動詞が許可されていないようです。しかし、私の一生の間、私はそれを理解することができません。ハンドラーマッピングをすでに確認しましたが、ハンドラーは.SVC拡張子のすべての動詞を許可します。WebDAVを無効にしました。他にどこを見ればいいのかよくわかりません。Windows Server2008R2でIIS7.5を使用しています。

(もしそれが助けになるなら、私はコードを提供することができます)

ありがとう、コーリー

4

4 に答える 4

74

同じ問題を抱えている人がいる場合。

これがあなたが試すことができる別の方法です。

web.configで

<system.webServer>
    <modules>
      <remove name="WebDAVModule" />
    </modules>
    <handlers>
      <remove name="WebDAV" /> 
    </handlers>
</system.webServer>
于 2012-12-27T20:19:35.087 に答える
29

DELETE動詞を使用しているときに、なぜ405 Method Not Allowedを取得し続けたのかを理解するために、多くの時間を費やしました。私が読んだすべてのことは、IISからWebDAVをアンインストールすることを言っていましたが、すべてのサイトで503エラーが発生したという点でIISを壊したようです。再インストールしてから、IISで設定を探しました。

WebDAVが問題であることが判明し、IIS機能ページに「WebDAVオーサリング」という名前のノードがあります。それをクリックすると、 WebDAV設定...をクリックしてプロパティページを表示できます。「フィルタリングの動作を要求する」セクションで、「動詞のフィルタリングを許可する」を「 False 」に設定すると、うまくいくようです(YMMV)。

これは解決策をグーグルで検索するときに人気のある結果のようだったので、提案された解決策のリストに追加したいと思いました。

于 2012-02-20T05:11:08.777 に答える
1

IISマネージャーでWebサイトのハンドラーマッピングを開きます

削除する各ハンドラーを編集し、[制限のリクエスト]をクリックして、[動詞]タブを選択し、[次のいずれか]リストにDELETEを追加するか、懸念事項の範囲内で適切な場合は、すべての動詞を許可します。

Webサイトを再起動したり、コードを再コンパイルしたりする必要がある場合があります

于 2013-10-18T20:40:24.480 に答える
0

これが本当に私の質問に対する答えであるかどうかはわかりませんが、問題は解決しました。Visual Studioで新しいプロジェクトを開始しただけで、今回はオンラインで見つけた.NETRESTサービステンプレートを使用しました。次に、以前の試行で使用した古いコードを転送して、新しいプロジェクトで使用しました。それは魅力のように機能しました。4つの動詞すべてが正しく機能するようになりました(GET、PUT、POST、およびDELETE)。だからそれは今働いています。

Corey

于 2010-12-11T22:21:51.943 に答える