2011-05-26 25 views
5

VS devサーバー上で実行されているコンソールまたはWebアプリケーション/ Webアプリケーションから、リモートWCFサービスに正常に接続できます。しかし、IISでホストされているWebサイトから接続しようとすると、次のエラーが発生します。何か案が?IISからリモートwcfサービスに接続できません

No connection could be made because the target machine actively refused it 12.11.121.12:80

答えて

4

このエラー:

No connection could be made because the target machine actively refused it

は、接続要求が正常に与えられたポート上で、(それがファイアウォールの問題ではありません)ターゲットマシンに通じ持って、ターゲットマシンが聞いていなかったことを意味しますそのポート上の着信接続のために、OSは接続試行を拒否しました。

残りのエラーは、接続が試行されたマシン12.11.121.12とポート番号80を示します。

エラーは、サーバーがターゲットマシン上で実行されていないことを示します。 を知っている場合、接続しようとしているマシンでサーバが実行されている場合、別のアプリケーションから接続できるため、接続の詳細がWebサイトで正しく設定されていないことがわかります。

ので、チェックするためのいくつかのもの:

  • は、ターゲットWebサービスのためのapp.configを/ web.configファイルの設定の詳細に違いはありますか?具体的には、マシン名(12.11.121.12)とポート番号(80)は潜在的に見えます。
  • IISホステッドWebサイトは、動作するコンソール/ Webアプリケーションと同じマシンで実行していますか?ない場合は1台のサーバーが外部に面しであり、他は内部にあるので、両方のマシンは(あなたがむしろ12.11.121.12よりも例えばsomeserver.orgを使用していて、それが別のIPに解決されているターゲット・サーバーの名前を解決するのですか?
+0

ご返信ありがとうございます。私は特にあなたの返事の後に構成を調べ始めました。私のコンピュータはプロキシを介して設定されているので、問題があるかもしれないと思った。私は、バイパスのようなバインディング要素のいくつかのパラメータを変更した。 "false" useDefaultWebProxy = "false" proxyAddress = "http:// proxyaddress:portno" .configと一度に作業が始まりました。なぜ私は体がそれについて考えなかったのだろうと思っています。 – VJAI

+0

@Vijaya Anand:うれしいことです。プロキシは間違いなくあなたがあなたと思っていたものとは別のマシンと話すことになる最も簡単な方法の1つです: – forsvarir

+1

@マーク:問題が解決されたように見えるので、サイトのエチケットの周りにいくつかあります。あなたの問題を解決するのに役立つ私の答えが見つかった場合、それをアップアップするのは一般的に丁寧です。私があなたの正確な問題について言及しなかったので妥当であると思っています)あなたがそれを受け入れるつもりではない場合は、あなた自身の回答を投稿し、その問題が解決され、どのように。一方、さらなる助けが必要な場合は、あなたの質問への更新を投稿して、まだどんな問題があるのか​​を示すことができます。 – forsvarir

0

この音は、アプリケーションプールがデフォルトで別のユーザー(マシン)で実行されているため、アクセス許可(認証の問題)によく似ています.WCFは認証トークンを使用するので、これが問題です。私はそれが正常に動作すると確信しています

+0

ターゲットマシンが接続試行が行われているポートでリッスンしていない場合(この場合、プロキシ設定のため、回答のopsコメントを参照)、このエラーは「ターゲットマシンが積極的に拒否しました。アクセス権の問題であれば、エラーは 'permission denied'や 'authentication failure'のようなものになる可能性が高くなりますが、このレベルの検証は接続が確立された後になるまで行われません。 – forsvarir

+0

良い点、明快に感謝します。 – hivie7510

0

奇妙に私はuseDefaultWebProxyがWebアプリケーションから "true"だったときにこのエラーを受けましたが、まったく同じコードと設定がユニットテストでうまくいきました。ラス。

ウェブアプリケーションがウェブブラウザプロキシ(企業ポリシー)https://foo/bar:1234を使用していたことが判明しました。私が使用して明示的にこれを設定した場合:

<system.serviceModel> 
    <bindings> 
    <wsHttpBinding> 
     <binding name=... 
      useDefaultWebProxy="false" proxyAddress="https://foo/bar:1234" 
     ... 

を私はエラーを得た:

The ServicePointManager does not support proxies with the https scheme

だから私は、HTTPS、HTTPのプロキシアドレスを変更していない、それが働きました。

関連する問題