2

ASP.NET WebアプリケーションからASP.NET Webサービスを呼び出そうとすると、次のエラーが発生します。私は、WebサービスとWebアプリケーションが同じファームにあるか、同じLoad Balancerの背後にあるからだと考えています。Webアプリケーションと同じファームでASP.NET Webサービスを呼び出す

A connection attempt failed because the connected party did not properly 
respond after a period of time, or established connection failed because 
connected host has failed to respond [IP Address removed]:80 

私は私のローカルマシン上のWebアプリケーションからファーム上のWebサービスを呼び出すときに、このエラーは発生しません、または私はファーム上のWebアプリケーションからの私のローカルマシン上でWebサービスを呼び出すとき。

なぜこのエラーが発生しているのですか?

+0

Webアプリケーションが呼び出している共有状態(セッション状態など)にアクセスしようとしているときに、Webサービスがブロックしてタイムアウトしている可能性はありますか? – ewbi

答えて

2

私の問題の解決策は、ロードバランサでNATingをオンにすることでした。

ファーム内のサーバーからLoad Balancerへの要求が行われた場合、Load Balancerはその要求をファーム内のサーバーの1つ(おそらく要求したサーバーと同じ)に送信します。問題は、要求を処理していたサーバーが、Load Balancerに戻すのではなく、「要求しているクライアント」に直接応答を送信しようとするためです。要求を行ったサーバーは応答を無視します。 Load Balancerによって送信されます。 NATingをオンにすると、すべての応答がLoad Balancerに戻され、Load Balancerが元のクライアントに応答を送信します。

0

これは単なる推測ですが、実際にWebサーバーが使用されているIPアドレスを確認できますか?ファームがロードバランサの背後にある場合、そのIPはロードバランサ自体またはファイアウォールまたはプロキシサーバーによってブロックされている可能性があります。

リモートデスクトップ経由でWebサーバーにアクセスでき、pingのIPアドレスにアクセスできますか?

+0

ファーム内のいずれかのサーバーにリモートした後、どのIPアドレスにpingを実行しますか?サーバー自体のアドレス、ファーム内の別のサーバー、またはLoadBalancer? –

+0

Webサービスを実行しているマシンのパブリックIPアドレスおよび/または名前。私が言ったように、それは推測ですが、マシンが何らかの理由で公衆IPを見ることができない可能性があります – ChrisF

+0

事実、あなたはボックスからIPアドレスをpingしてみることができます。 – ChrisF

0

ファームノードのTCP/IPスタックは、コールをロードバランサのIPアドレスにルーティングするのではなく、特定のファームノードの127.0.0.1:80のローカルコールに自動的に変換します。電話をしています。このケースを処理するようにWebサーバーが設定されていることを確認してください。

関連する問題