我能够从Windows窗体程序就好调用第三方供应商的网络服务。当我尝试调用从一个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包装。让我们不要下车点 - 但微软表示WCF可以调用WSE3,但只有SSL开启,我的供应商 - 信不信由你 - 是不是允许SSL连接。所以I'mn坚持写包装,所以我可以从2009年的BizTalk现在打电话,我通过一个控制台程序测试包装。

我能连做调试?我已经添加的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>

和我已经给该目录的完全访问每个人 - 但没有跟踪在那里出现。

什么是有些事情我可以找一个或下尝试调试呢?

在理论上的“ping”结果应该没有关系,因为该网站是从调用它就好了Windows窗体程序工作。

然而 - 这里是中国平安表示,它看起来有点可疑的对我说:

C:\用户\ uxnxw01>平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)。我也看到一些“目标不可达”在工作的一个声明。

在正常工作的那个,我从来没有看到66.77.241.76,我只看到我们公司的代理。但我不能看到的配置(或代码)任何会告诉WSE3使用或不使用代理服务器。


远程登录的结果:

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服务。我知道,我可以有这种方式。

我想在这两个方案的主要区别是,一个是下一个双赢的形式运行,并直接调用WSE3。这一个工作。失败的一个基本上是99%相同的代码,发布为WCF服务,所以它的IIS下运行(然后一个控制台程序调用我的机器,这反过来调用WSE3服务的WCF / IIS服务)。

有一些原因IIS不会使用相同的代理服务器?

有帮助吗?

解决方案

由于上述各方面的帮助 - 但这里是真正的答案:

valservice.Proxy =新System.Net.WebProxy(“ HTTP://10.192.xx.xx:8080 ”,TRUE);

IIS下运行的WCF服务显然不使用相同的代理,所以在代码手动设置。我会后一个问题,看看是否有一种方法在配置文件来做到这一点。

其他提示

您不妨使用 Wireshark的来看看发生了什么事情与网络流量。

Ping请求(ICMP分组)可以在防火墙上被禁用。所以这是完全有可能无法得到ping响应回,同时能够访问不同端口上的框。

尝试使用telnet连接到66.77.241.56的80端口,看看你是否得到回应。

telnet 66.77.241.56 80

可替换地,一个tracerte到所述IP地址可以提供一些更详细的信息为网络管理员的一个,因为它可以同样具有网络路由或NAT做。

第三种可能性是,你可能需要明确设置Proxy财产上的SoapHttpClientProtocol SOAP客户端实例。的Winforms自动拾取此,但是从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