質問

私はうまくWindowsフォームプログラムからサードパーティベンダーのWebサービスを呼び出すことができますよ。

:私は、私は次のエラーを取得するWCF Webサービスから同じWebサービスとWebメソッドと同じURLを呼び出そうとすると
ExportValuationPolicyNumber:Exception=System.Net.WebException: Unable to connect to the remote server ---> 
System.Net.Sockets.SocketException: 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 66.77.241.76:80

   at System.Net.Sockets.Socket.DoConnect(EndPoint endPointSnapshot, SocketAddress socketAddress)
   at System.Net.ServicePoint.ConnectSocketInternal(Boolean connectFailure, Socket s4, Socket s6, Socket& socket, IPAddress& address, ConnectSocketState state, IAsyncResult asyncResult, Int32 timeout, Exception& exception)
   --- End of inner exception stack trace ---
   at System.Net.HttpWebRequest.GetRequestStream()
   at System.Web.Services.Protocols.SoapHttpClientProtocol.Invoke(String methodName, Object[] parameters)
   at TFBIC.RCT.WCFWebServices.ExpressLync.ValuationServiceWse.ExportValuationPolicyNumber(String PolicyNumber) in c:\Source\TFBIC.RCT.WCFWebServices\TFBIC.RCT.WCFWebServices\Web References\ExpressLync\Reference.cs:line 519
   at TFBIC.RCT.WCFWebServices.ValuationService.ExportValuationPolicyNumber(String PolicyNumber) in c:\Source\TFBIC.RCT.WCFWebServices\TFBIC.RCT.WCFWebServices\ValuationService.svc.cs:line 97

私は基本的には、ベンダーの.asmx / WSE3サービスのWCFのラッパーを記述しようとしています。ポイントを下車ないようにしましょう - しかし、MicrosoftはWCFは、SSLをオンにし、私のベンダーだけではなく、WSE3を呼び出すことができますと言う - それを信じるかどうか - SSL接続を許可していません。私は今のBizTalk 2009年から呼び出すことができるようにそうI'mnがラッパーを書いて立ち往生、私はコンソールプログラムを経由してラッパーをテストしています。

私もデバッグするために何ができますか?私はそれが吹いています場所それは知っている(プラス上記のエラーの行番号) - 私は、EventLogには前にトレースし、それは.asmxというサービスを呼び出すWCFサービスの後に追加しました。

私は私のweb.configファイルに以下の持っています

<microsoft.web.services3>
        <diagnostics>
                <trace enabled="true" 
                           input="c:\inetpub\wwwroot\wsetraces\InputTrace.webinfo" 
                           output="c:\inetpub\wwwroot\wsetraces\OutputTrace.webinfo" />
                <detailedErrors enabled="true" />
        </diagnostics>
</microsoft.web.services3>

と私は誰にでもディレクトリのフルアクセス権を与えている - まだ痕跡はありません表示されます。

私が探しやこれをデバッグするために、次の試みることができるいくつかのものは何ですか?

のウェブサイトはうまくそれを呼び出すWindowsフォームプログラムから取り組んでいるので、理論的には、「ピング」の結果は、問題ではないはず。

それにもかかわらず - ここでのPingが示したものです、それは私には少し疑問に見えます:

C:\ Users \ユーザーuxnxw01> pingをrct.msbexpress.net

Pinging rct.msbexpress.net [66.77.241.56] with 32 bytes of data:
Reply from 10.193.99.5: Destination net unreachable.
Reply from 10.193.99.5: Destination net unreachable.
Request timed out.
Reply from 10.193.99.5: Destination net unreachable.

Ping statistics for 66.77.241.56:
    Packets: Sent = 4, Received = 3, Lost = 1 (25% loss),

おかげで、

ニール・ウォルターズ


WireSharkの分析

私は、Wiresharkのを実行しなかった - 下記のコメントにいくつかの結果を掲載しました。しかし、より多くのそれを読んだ後、それは常に「宛先到達不能」と言っていません。しかし、それは失敗のケースでは、私がどのdatabackを取得することはありません。私はまだ次に何をすべきか混乱しています。私は、パケットを比較してきたが、それは遅いと混乱を招くのです。例えば、私はまだ私が要求パケットを渡していますキー(特定policyNum)を発見していません。私も働い1に、いくつかの「宛先到達不能」の文を参照してください。

作品1では、私が66.77.241.76を見たことがない、私は私達の会社のプロキシを参照してください。しかし、私はWSE3が使用することを教えてくれたり、プロキシを使用していないだろう設定(またはコード)には何も見ることができません。


Telnetの結果:

C:\Users\uxnxw01>telnet 66.77.241.56 80
Connecting To 66.77.241.56...Could not open connection to the host, on port 80:
Connect failed

C:\Users\uxnxw01>telnet 66.77.241.76 80
Connecting To 66.77.241.76...Could not open connection to the host, on port 80:
Connect failed

私はこれが証明わからないんだけど。私が言ったように、私は間違いなく、直接そのWSE3インターフェースを呼び出すことによって、Windowsのフォームから同じWebサービスを呼び出すことができます。私はそこにその方法を得ることができることを知っています。

私は2つのプログラムの主な違いを考えている1が勝つフォームの下で実行し、直接WSE3を呼び出していることです。その一つが動作します。失敗1は、WCFサービスとして公開基本的に99%に同じコード、であるので、(その後、コンソールプログラムが交互にWSE3サービス呼び出し、私のマシン上でWCF / IISサービスを呼び出す)IISの下で実行しています。

をIISが同じプロキシを使用することはありませんいくつかの理由がありますか?

役に立ちましたか?

解決

上記のすべての助けに感謝します - しかし、ここで本当の答えです。

valservice.Proxy =新System.Net.WebProxy(「ます。http://10.192.xx.xx:8080 の」真)。

IISの下で実行されているWCFサービスは、同じプロキシを使用して明らかにされなかったので、私はコード内で手動で設定します。私は、configファイルでこれを行う方法があるかどうかを確認するために別の質問を投稿します。

他のヒント

あなたはネットワークトラフィックで何が起こっているかを確認するために Wiresharkのを使用したい場合があります。

のPing要求(ICMPパケット)がファイアウォールで無効にすることができます。だから、別のポート上のボックスにアクセスできることながら、バックping応答を取得しないことは完全に可能です。

ポート80の66.77.241.56に接続し、あなたが応答を取得かどうかを確認するために試してみて、telnetを使用します。

telnet 66.77.241.56 80

また、tracerteは、それが均等にネットワークルーティングやNATとしなければならない可能性があるので、IPアドレスは、ネットワーク管理者のためのいくつかのより詳細な情報を提供することができると述べた。

第三の可能性は、明示的にあなたのProxy SOAPクライアントインスタンス上SoapHttpClientProtocolプロパティを設定する必要があるかもしれないことです。リサイズは、これを自動的にピックアップしますが、Webサービス/アプリから、このケースではありません。

あまりにも他の人の投稿に自分のコメントを参照してください、それに加えて、あなたの診断ログに関連し、これは私がWCFのトレースログをダンプするために私の設定を持っているXMLは、次のとおりです。

<configuration>

    <system.diagnostics>
        <sources>
            <source name="System.ServiceModel" switchValue="Information, ActivityTracing" propagateActivity="true">
                <listeners>
                    <add name="traceListener" type="System.Diagnostics.XmlWriterTraceListener" initializeData= "MyService.svclog" />
                </listeners>
            </source>
        </sources>
    </system.diagnostics>

</configuration>
ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top