【发布时间】:2014-03-31 07:13:29
【问题描述】:
我正在使用来自 url 的 Web 服务。当我使用 SoapUI 进行测试时,我会立即得到响应(见下图),并且我发出的请求数据已经通过了另一端。
所以在我的 C# 应用程序中我做了同样的事情,我使用了 Web 服务 wsdl 并自动生成了代理类。我基于该代理类创建了一个请求,请求数据与我在 SoapUI 中使用并发送出去的请求数据完全相同。我确认在另一端他们成功收到了我的数据并且没有显示错误。
但是,我再也没有收到任何 ID,过了一段时间我会收到此异常:
错误对“http://someURLWebservice.com/WSoperation”的 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();
}
}
【问题讨论】:
-
有人吗? :( ...我尝试使用相同的代码在webservicex.net/geoipservice.asmx?WSDL 测试Web 服务,我的应用程序立即得到了响应。
-
你在服务器端的设置如何?
-
这是最难的部分,我写这个是为了集成,所以说实话我真的不知道。但是,如果您能指出我应该与他们核实的事情,那也会有所帮助。
-
你确定你用 SoapUI 调用完全相同的方法吗?你不能从 c# 代码中调用这个 web 服务的非异步方法吗?
标签: c# .net web-services wcf wsdl