WebClientProtocol.Timeout未定时

时间:2012-12-10 22:03:40

标签: c# webservice-client

我通过SOAP调用Web服务。当Web服务关闭时,我们希望它快速失败而不是等待默认超时。我使用Timeout属性:

service.Timeout = 5000;

我认为应该在5秒后暂停操作。但是,我看到操作直到23秒后才超时,与默认超时时间相同(即上面的行不存在)。

我看到抛出的异常是“操作已经超时”,我只是无法理解为什么它没有在我指定的时间内超时。我做错了什么?

修改

这是测试程序:

long start = Environment.TickCount;
try {
  mdDqwsStatus.Service service = new mdDqwsStatus.Service();
  service.Timeout = 5000;                                        // 5 sec
  string response = service.GetServiceStatus(customerID, pafID); // This calls the WS
  long end1 = Environment.TickCount - start;                     // I never hit this line
} catch (Exception ex) {
  long end2 = Environment.TickCount - start;                     // Failure goes to here
  OutputError(Ex);
}

我在OutputError行上设置断点并查看end2,并查看23000+毫秒。

请注意,在该字段中,如果Web服务(在IIS上运行)已停止,则延迟很短。但是,如果机器出现故障或出现连接问题,延迟时间为23秒(有时甚至更长)。

0 个答案:

没有答案