web-dev-qa-db-ja.com

(405)メソッドは許可されていません。 WCF WebService

前書き:

こんにちは、ローカルのIIS 7.5サーバーにWCF Webサービスをセットアップしようとしていますが、基本的な構成を完了した後、WinFormsテストクライアントでデータを送信できず、タイトルにエラーが記載されています。この問題についてはすでに類似のスレッドを検索しましたが、自分の問題に該当するものは見つかりませんでした。

データ:

-Wcf WebServiceとサードパーティから提供されるテストクライアントの両方

-彼らはすでに別のサーバーで動作しており、私は同じバージョンを使用しています

-IISを有効にしたり構成したりすると、おそらく何か問題が発生します

リクエスト:

-IIS機能を有効/無効にして、Wcf WebServiceを使用できるように正しくインストールするために必要な機能を知っている必要があります(その場合)。

-上記のエラーを解決するためにサーバーを正しく構成する方法。

私の構成:

-インストール後IIS DefaulAppPoolを.NET Framework v4.0.30.319に変更しました。パイプラインモード:統合。-詳細設定:ユーザープロファイルのロード= False。

-DefaultAppPool.Bindingを使用して、「WcfMicrocontrollerService」という名前の新しいWebサイトを作成しました。タイプ:http、IPアドレス:、ポート:80

この時点でWebブラウザーからアクセスできますが、テストクライアントを使用してPOSTサービスへのデータ)と、次のエラーが発生します: "リモートサーバーが予期しない応答を返しました:(405)メソッドは許可されていません。 "

Fiddlerによって記録された送信されたデータパケットは次のとおりです。

POST http://192.168.0.102/MicroControllerComSvc.svc HTTP/1.1
Content-Type: text/xml; charset=utf-8
SOAPAction: "http://tempuri.org/IMicroControllerComSvc/GetMicrocontrollerData"
Host: 192.168.0.102
Content-Length: 237
Expect: 100-continue
Accept-Encoding: gzip, deflate
Connection: Keep-Alive

<s:Envelope xmlns:s="http://schemas.xmlsoap.org/soap/envelope/"><s:Body><GetMicrocontrollerData xmlns="http://tempuri.org/"><microControllerData>1,1,1,1,2,2,1,0,100,300</microControllerData></GetMicrocontrollerData></s:Body></s:Envelope>

受け取った:

HTTP/1.1 405 Method Not Allowed
Cache-Control: private
Allow: GET, HEAD, OPTIONS, TRACE
Content-Type: text/html; charset=utf-8
Server: Microsoft-IIS/7.5
X-Powered-By: ASP.NET
Date: Tue, 01 Mar 2016 10:44:44 GMT
Content-Length: 5671

そしてここに本文があります: https://dl.dropboxusercontent.com/u/2237590/405.html

これは、ハンドラーマッピングを調べる必要があることを示しているようですが、そこで何を編集すればよいかわかりません。

17
Grossu Iulian

さて、あなたの問題について非常に簡単な検索をした後、私は次の質問を見つけました IIS8のWCF; * .svcハンドラーマッピングは機能しません

質問がIIS 8に関するものであるという事実を無視して、WindowsまたはWindows Serverを実行していますか?

Windowsを使用している場合は、...に移動します。

  • コントロールパネル->プログラム->プログラムと機能> Windowsの機能をオンまたはオフにします。 「.Net Framework 3.5(Invlucdes .NET 2.0および3.0)」セクション
  • 「Windows Communication Foundation HTTPアクティベーション」がオンになっていることを確認してください。
  • また、「。NET Framerwork 4.x Advanced Services」および「WCF Services」で、HTTP Activationがオンになっていることも確認してください。

これは、.net 4.5の変更点を示す質問の写真です。 オンにする機能

Windows Serverを使用している場合は、サーバーマネージャーを使用して役割を設定する方法に関する質問への最初の回答に従ってください。

41
simlawstu