1

WCF サービスを使用して Windows Azure にサイトを作成しています。それを参照して呼び出そうとすると、次のエラーが発生します。

未処理の例外: System.Net.WebException: エラー: NameResolutionFailure at System.Net.HttpWebRequest.EndGetRequestStream (IAsyncResult asyncResult) [0x00000] in :0 at System.Net.HttpWebRequest.GetRequestStream () [0x00000] in :0 at System.Web .Services.Protocols.SoapHttpClientProtocol.Invoke (System.String method_name、System.Object[] パラメータ) [0x00000] in :0

Web サービスが IP アドレスではなくホスト名に解決されます。Windows Azure では、Web サービスを使用するために特別な設定を追加する必要がありますか?

4

1 に答える 1

0

ご提供いただいた情報によると、Windows Azure で実行されている WCF Web ロールがあり、アクセスしようとするとエラーが発生するようです。

Windows Azure でホストされている WCF サイトがある場合、サービス URL は次のようになります: http://your_service_name.cloudapp.net/servicename/methodname

また、どのクライアントからでもアクセスできるように、WCF サービスに適切なバインドが必要です。これは、間違ったバインディングまたは不適切なバインディングがサービスをスローして誰も接続できないため、ほとんどの問題が発生する場所です。また、ブラウザーからアクセスしたときに、WCF サービスが適切な WSDL 情報を返すことを確認することもできます。サービス参照URLを確認するテストです。その部分は確認しましたか?

クライアント アプリケーションでそれを参照しようとすると、上記の参照 URL を使用することになり、そこに組み込まれている関数が一覧表示され、使用できるようになります。Windows Azure では、サービスがホスト名 (VIP であるため変更される可能性のある IP アドレスではない) に解決される必要があるため、これは正しいことです。

サービスから WSDL を取得できても参照を取得できない場合は、(Azure で) エンドポイント URL をバインドしてコードでサービスを直接使用してから、バインディングとエンドポイントを使用してチャネルを作成することができます。

于 2012-08-31T00:38:41.150 に答える