誰でもこれに光を当てることができますか?今日は丸一日無駄になっているように感じます。これを行う方法についての情報のスクラップをインターネットで探して探しています。非常にシンプルなWCF RESTfulサービスを作成しました。それは基本的には概念実証です。背後にシンプルなデータベースがあり、アイテムを表示、作成、更新、削除できるように、データベースを機能させようとしています。現在、私は表示と更新のみを行っています。後で作成に取り組みます。現時点では、削除が機能しない理由を理解できません。これまでに見つけたほとんどすべてのことから、WebDAVモジュールを無効にする必要があることがわかります。私はそれを行い、それからPUTを動作させました。しかし、DELETEを機能させることができません。サービスを通じてDELETEを呼び出そうとすると、次のエラーが発生します。
リモートサーバーが予期しない応答を返しました:(405)メソッドが許可されていません。
だから私のサーバーのどこかにそれはDELETE動詞を許可していないようです。しかし、私の人生では、それを理解することはできません。私はすでにハンドラーマッピングをチェックしており、ハンドラーは.SVC拡張子のすべての動詞を許可しています。 WebDAVを無効にしました。他にどこを見ればいいのか本当にわからない。 Windows Server 2008 R2でIIS 7.5を使用しています。
(それがまったく役立つ場合は、コードを提供できます)
ありがとう、コーリー
DELETE動詞を使用しているときに405 Method Not Allowedを取得し続ける理由を理解するために、膨大な時間を費やしました。私が読んだものはすべてIISからWebDAVをアンインストールすると言っていましたが、すべてのサイトで503エラーが発生するという点でIISを壊すようでした。再インストールしてから、IISを調べて設定を調べました。
WebDAVが問題であり、IIS機能ページに "WebDAV Authoring"という名前のノードがあることがわかりました。それをクリックすると、プロパティページを取得するためにWebDAV設定...をクリックできます。セクションリクエストフィルタリング動作で、Allow Verb FilteringをFalseに設定すると、私(YMMV)にとってうまくいくようです。
これは、解決策を探すときに人気のある結果のように思われたので、提案された解決策のリストに追加したいと思いました。
同じ問題が発生した場合。
ここにあなたが試すことができる別の方法があります。
web.config
<system.webServer>
<modules>
<remove name="WebDAVModule" />
</modules>
<handlers>
<remove name="WebDAV" />
</handlers>
</system.webServer>
IIS Managerでウェブサイトのハンドラーマッピングを開きます
削除する各ハンドラーを編集し、[要求の制限]をクリックして、[動詞]タブを選択し、DELETEを[次のいずれか]リストに追加するか、必要に応じてすべての動詞を許可します。
ウェブサイトの再起動やコードの再コンパイルが必要になる場合があります
これが本当に私の質問への答えかどうかはわかりませんが、問題は解決しました。 Visual Studioで新しいプロジェクトを開始するだけで、今回は.NET RESTオンラインで見つけたサービステンプレートを使用しました。次に、以前の試行で得た古いコードを転送して、新しいプロジェクト。これは魅力のように機能しました。4つの動詞はすべて正しく機能するようになりました(GET、PUT、POSTおよびDELETE)。したがって、現在は機能しています。
コーリー