C# C中异步web服务调用超时#

C# C中异步web服务调用超时#,c#,web-services,service,C#,Web Services,Service,我正在使用C#,并通过使用添加Web引用从客户端的ASP.NETASMXWeb服务创建了一个代理。。。VSTS 2008的特点 我使用异步方法调用模型(即调用AsyncXXX方法,该方法将立即返回)并处理完整事件(我添加事件处理程序以处理完整事件,即使从服务器端接收到响应) 我发现,如果服务器长时间没有响应,则不会触发整个事件 我的问题是, 若在调用AsyncXXX方法后服务器并没有响应,则不会调用完整的事件处理程序,这是预期的特性还是我的错误 有没有办法分配超时值——这样我就不会无限期地等待完

我正在使用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中的哪个配置项?看见