Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/270.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# WCF web服务调用超时_C#_.net_Web Services_Wcf_Wsdl - Fatal编程技术网

C# WCF web服务调用超时

C# WCF web服务调用超时,c#,.net,web-services,wcf,wsdl,C#,.net,Web Services,Wcf,Wsdl,我正在使用来自url的web服务。当我使用SoapUI进行测试时,我会立即得到响应(见下图),并且我发送的请求数据会传递到另一端 因此,在我的C#应用程序中,我做了同样的事情,使用web服务wsdl并自动生成代理类。我基于该代理类创建了一个请求,请求数据与我在SoapUI中使用并发送的请求数据完全相同。我确认,在另一端,他们成功地收到了我的数据,没有显示任何错误 但是,我从未收到任何ID,过了一段时间,我会收到此异常: 错误对“”的HTTP请求已超过分配的超时00:00:59.9470000。分

我正在使用来自url的web服务。当我使用SoapUI进行测试时,我会立即得到响应(见下图),并且我发送的请求数据会传递到另一端

因此,在我的C#应用程序中,我做了同样的事情,使用web服务wsdl并自动生成代理类。我基于该代理类创建了一个请求,请求数据与我在SoapUI中使用并发送的请求数据完全相同。我确认,在另一端,他们成功地收到了我的数据,没有显示任何错误

但是,我从未收到任何ID,过了一段时间,我会收到此异常:

错误对“”的HTTP请求已超过分配的超时00:00:59.9470000。分配给此操作的时间可能是较长超时的一部分

我是不是遗漏了什么?我下载了WSDL并使用SoapUI生成了模拟服务,如果我在本地调用该模拟web服务,我会立即获得它。ID会立即返回

这是我的密码:

 string serverURL = Settings.Default.ExtensionServiceURL;

 //Get Proxy class client
 ext.ExtWSPortTypeClient client = new ext.ExtWSPortTypeClient();
 EndpointAddress addr = new EndpointAddress(serverURL);

 try
   {
      client.Endpoint.Address = addr;
      Uri site = new Uri(serverURL);
      client.Endpoint.ListenUri = site;
      ExtensionData eData = new ExtensionData();
      client.ChannelFactory.CreateChannel();

      Console.WriteLine("Sending Locator Event Request to Web Service");
      ext.locatorEventResponse1 resp = await client.locatorEventAsync(eData.GenerateLocatorEventRequest(ev));
   }
   catch (Exception ex)
   {
       Console.WriteLine("Error " + ex.Message);
   }
   finally
   {
       if (client != null)
       {
          ((ICommunicationObject)client).Close();
       }
   }

检查邮件配额设置,可能是您的服务发送的邮件量超过了配置的邮件量

在类似情况下,我将从以下内容开始:

使用WCF客户端进行测试并捕获跟踪文件:

  • 为客户端配置WCF跟踪
    ()
  • 通过WCF客户端应用程序发送消息
  • 让调用超时并保存跟踪日志数据
使用soapUI客户端进行测试并捕获Http日志

  • 清除soapUI http日志(底部的一个选项卡)
  • 通过soapUI测试请求发送消息
  • 保存Http日志
一旦获得了两个客户端的跟踪信息,就应该能够比较事务,并有希望确定问题的来源。特别是,我建议确认双方的服务地址,然后比较SOAP信封,以确保WCF绑定的设置与soapUI设置一致

此外,还可以使用Fiddler查看web服务通信。下面的文章提供了很好的参考链接

希望这有帮助。

关于,

所以我最终配置了Fiddler2来嗅探我的SoapUI请求,并将其与我的应用程序请求进行比较。在应用程序请求标头中,我看到了以下内容:

Content-Type: text/xml; charset=utf-8
SOAPAction: ""
Host: engage.ext-inc.com
Content-Length: 1036
**Expect: 100-continue**
Expect:100 continue不在成功发送并获得响应的SoapUI请求中。考虑到这一点,我在Fiddler中接受了SoapUI请求,并在此基础上编写了一个新的请求……除了我输入Expect:100 continue,然后猜怎么着,我没有收到任何响应

读到这篇文章时,我偶然发现了这一点


瞧,在放置ServicePointManager.Expect100Continue=false时;在进行web服务调用之前,我会立即得到响应。

有人吗?:(…我在测试web服务时尝试了相同的代码,我的应用程序立即得到了响应。服务器端的设置如何?这是最困难的部分,我写这篇文章是为了集成,所以说实话,我真的不知道该怎么做。但是,如果你能指出一些我应该向他们检查的事情,那将是很有帮助的。)o、 你确定用SoapUI调用了完全相同的方法吗?你不能从c#代码调用此Web服务上的非异步方法吗?