WSE 2.0セキュリティを使用してSOAP Webサービスにアクセスする必要があります。生成されたすべてのc#プロキシ(Microsoft.Web.Services2.WebServicesClientProtocolから派生)を取得しました。 )、証明書を適用していますが、メソッドを呼び出すとエラーが発生します。
System.Net.WebException : The request failed with HTTP status 405: Method Not Allowed.
at System.Web.Services.Protocols.SoapHttpClientProtocol.ReadResponse(SoapClientMessage message, WebResponse response, Stream responseStream, Boolean asyncCall)
at System.Web.Services.Protocols.SoapHttpClientProtocol.Invoke(String methodName, Object[] parameters)
いくつかグーグルを実行しましたが、これはサーバー構成の問題であるようです。ただし、このWebサービスは問題なく多くのクライアントで使用されています(WebサービスはTelecom New Zealandによって提供されるため、正しく構成する必要があります。Javaで記述されていると思います)
誰もがこの問題についていくつかの光を当てることができますか?
わかりました、問題は何でしたか。 .asmx URLではなく.wsdl URLを呼び出そうとしました。どー!
IISにWCFがインストールされていないことが原因であることがわかりました。主なことは、.svc拡張子をIIS MSDNを参照)にマッピングする必要があることです。 ServiceModelRegツールを使用してインストールを完了します。新しいマシンを入手するかIISを再インストールするたびに、WCFがインストールされ、.svcがIIS)にマップされていることを確認します。
私は同じ問題を抱えていましたが、詳細は異なりました:
使用していたURLには、ファイル(.asmx)の部分がありませんでした。ブラウザでURLを呼び出すことは問題ありませんでした。また、Visual Studioを介してURLを設定する単純なクライアントでも機能しました。しかし、URLを動的に設定することはできませんでした!同じ405エラーが発生しました。
最後に、ファイルパーツをWebサービスのURLに追加すると問題が解決することがわかりました。多分.Netフレームワークのバグですか?
HTTPアクティベーションを有効にする必要があります
[コントロールパネル]> [Windowsの機能]> [.NET Framework 4.5 Advanced Services]> [WCFサービス]> [HTTPアクティブ化]に移動します。
私の場合の問題は、アプリの構成が誤って形成/呼び出されたことでした:構成では、サービスのURLはドメイン名として「localhost」を使用していましたが、実際のホスト名は私が呼び出したURLと異なりました:(つまり、構成の「localhost」を変更しましたURLで使用しているドメイン名に変換します。
うーん、他のクライアントもC#/。NETを使用していますか?
メソッドは許可されていません->これはREST Webサービスではなく、SOAPサービスですか?