【问题标题】:Set a time limit on a response from a web service设置来自 Web 服务的响应的时间限制
【发布时间】:2013-04-03 22:17:21
【问题描述】:

如果我调用网络服务 ...

Service1 myWebService = new Service1();
int NewTotal = myWebService.CurrentBreakdowns(6);

如何设置从 Web 服务获得响应的时间限制。我想给它 30 秒的响应时间,如果没有收到响应,请继续并显示“未收到及时响应”消息。

【问题讨论】:

  • 您使用的是“添加服务引用”还是旧的“添加 Web 引用”?

标签: c# asp.net web-services


【解决方案1】:

你可以如下设置超时时间

localhost.Service1 service = new localhost.Service1();
service.Timeout = 30000;

其中 Timeout 表示 XML Web 服务客户端等待对同步 XML Web 服务请求的回复到达的时间(以毫秒为单位)。

您也可以按照 SO 中以下帖子中的建议尝试

【讨论】:

    【解决方案2】:

    尝试在 web.config 中的 <system.web> 下添加这一行:

    <httpRuntime executionTimeout="30"/>
    

    将您的服务调用包装在 try/catch 块中并处理异常。

    【讨论】:

    • 感谢您的回答...但我只想将执行时间限制为 30 秒,以便仅调用该 Web 服务。我对其他所有内容的默认执行超时感到非常满意。
    【解决方案3】:

    嗨,兄弟,我用这段代码给客户端设置了时间限制;

    首先在类中创建服务代理

    private BussinessAdapter serviceProxy = null;

    在构造函数中分配一个新的适配器:

    serviceProxy = new BussinessAdapter();

    您可以在函数中使用此代码设置时间;

    serviceProxy.Timeout=3000000; //to 50 min I gave

    ...您需要与网络服务超时时间同步,我的网络服务有相同的时间限制。

    【讨论】:

      猜你喜欢
      • 2013-06-23
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2012-07-29
      • 2017-04-04
      • 2011-02-10
      • 2016-02-18
      • 1970-01-01
      相关资源
      最近更新 更多