C# C中异步web服务调用超时#
我正在使用C#,并通过使用添加Web引用从客户端的ASP.NETASMXWeb服务创建了一个代理。。。VSTS 2008的特点 我使用异步方法调用模型(即调用AsyncXXX方法,该方法将立即返回)并处理完整事件(我添加事件处理程序以处理完整事件,即使从服务器端接收到响应) 我发现,如果服务器长时间没有响应,则不会触发整个事件 我的问题是,C# C中异步web服务调用超时#,c#,web-services,service,C#,Web Services,Service,我正在使用C#,并通过使用添加Web引用从客户端的ASP.NETASMXWeb服务创建了一个代理。。。VSTS 2008的特点 我使用异步方法调用模型(即调用AsyncXXX方法,该方法将立即返回)并处理完整事件(我添加事件处理程序以处理完整事件,即使从服务器端接收到响应) 我发现,如果服务器长时间没有响应,则不会触发整个事件 我的问题是, 若在调用AsyncXXX方法后服务器并没有响应,则不会调用完整的事件处理程序,这是预期的特性还是我的错误 有没有办法分配超时值——这样我就不会无限期地等待完
George
SoapHttpClientProtocol
您的代理应该从中继承,它具有从其祖先继承的Timeout
属性。它可以回答您的第二个问题。在web服务的web.config中,您可以设置超时(如果超时,您还需要更改为不处于调试模式)。这将导致它抛出一个异常,该异常将引发您已完成的事件。然后,您需要检查异常,以查看它是否通过或失败
<system.web>
<httpRuntime executionTimeout="120" />
</system.web>
如果希望web服务永不超时,可以将此行放入web服务类:
this.Timeout = System.Threading.Timeout.Infinite;
谢谢,你指的是web.config中的哪个配置项?看见