2010-02-06 156 views
1

我在web服务中存在单声道问题。 我有一个webservice处理庞大的数据库操作。我在“appconfigtings”标签下的“webconfig”文件中给出了“Timeout = 1024”。线程异常异常

当2分钟后调用web服务,我得到“线程异常终止”。

请帮我解决这个问题

问候 库马兰

回答

1

这是不好的做法,将长操作(在你的情况下,它是超过2分钟),以同步Web服务方法。通常,Web服务只是在后端服务器或至少另一个线程上启动长时间方法。客户可以定期检查操作是否完成(所谓的看门狗模式)。或者审查使用单向方法的可能性 - 当客户完全不关心结果时。

顺便说一句,注意,即使成功的Web请求操作必须ThreadAbort例外完成 - 因为HttpRequest的含有升华在请求处理

2

结束你要设置的请求超时也。这是默认的30或60秒。

system.web部分,将是这样的:

<httpRuntime executionTimeout="200"/> 

这将影响到所有的页面,所以也许你希望把页面在一个单独的文件夹,这样你可以有一个本地的web.config文件为此设置。

1

检查innerexception。这应该有一些HttpApplication.CancelModelException,应该包含一个标志,指示是否超时。无论哪种方式,如果你确实有内隐感觉,它可能会提供更多的洞察力。

此外,请确保您的方法设置为async