私は、.NET Webサービスを呼び出す.NETクライアントアプリケーションを取得しています。このWebサービスは、たとえば、「www.foo.com」などのサードパーティWebサービスを呼び出します。例外の原因 "System.Net.WebException:リモート名を解決できませんでした"
.NET Client -> 'My Web Service' -> 'Third Party Web Service'
のVisual Studio 2008からは、このすべてはつまり、私は成功した「サードパーティのWebサービス」を呼び出すlocalhost:someport
で「私のWebサービス」を実行している、正常に動作します。
その後、Windows 2003 Serverボックスに「My Web Service」を公開しました。 「マイWebサービス」が「サードパーティのWebサービス」を呼び出すと、
「System.Net.WebException:リモート名を解決できませんでした: 'www.foo.com'」という例外が発生しました。私は次のことを試してみた
:私は「私のWebサービス」を展開し、サーバー上で
、私は、Internet Explorerを開いて、Webサービスのアドレス「http://www.foo.com/somewebservice.asmx」を入力します。 利用可能なWebサービスメソッドのリストが表示されたため、これは成功しました。
「My Web Service」の
web.config
ファイルで、「サードパーティWebサービス」のURL をWebサイトの名前からそのIPアドレスに変更しました。 これは、 "System.Net.Sockets.SocketException:ソケット操作が 到達不能ネットワークに接続しようとしました"という例外で失敗しました。次に、「サードパーティWebサービス」を呼び出すだけの簡単なWindowsフォームテストハーネスを作成しました。 このテストハーネスをサーバー上で実行したところ、「サードパーティWebサービス」 が正常に呼び出されました。
次に、上記1,2,3と同じ動作をした別のサードパーティWebサービスを試しました。
最後に、IPアドレスをサーバーの「hosts」ファイルに追加しましたが、今回ははるかに高速ですが、「リモート名を解決できませんでした」というエラーが発生しました。 DNSの問題だった場合は、テスト1と3が動作するとは思わないでしょう。
この問題を解決するにはどうすればよいですか?それは最終的には、プロキシサーバーの問題だった
:自分の質問へのMarkさんのコメントから
これは、ほとんどの場合、サーバー上のIISのWebサイト/サービスに関連付けられているセキュリティ設定が原因です。これらの設定では、他のサーバーを呼び出すことができません。これをServerFaultでも投稿してみてください。 – BBlake
ISA Serverまたはいくつかのファイアウォールまたはプロキシがありますか? – rahul
最後にプロキシサーバーの問題でした。例外メッセージは赤いニシンだった。 私はプロキシサーバーのIPアドレスとポートを使用してWebProxyのインスタンスを作成しました。 WebProxy proxy = new WebProxy(proxyServerIPAddress、Convert.ToInt32(proxyServerPort)); myService.Proxy = proxy; –