我在web服务中存在单声道问题。 我有一个webservice处理庞大的数据库操作。我在“appconfigtings”标签下的“webconfig”文件中给出了“Timeout = 1024”。线程异常异常
当2分钟后调用web服务,我得到“线程异常终止”。
请帮我解决这个问题
问候 库马兰
我在web服务中存在单声道问题。 我有一个webservice处理庞大的数据库操作。我在“appconfigtings”标签下的“webconfig”文件中给出了“Timeout = 1024”。线程异常异常
当2分钟后调用web服务,我得到“线程异常终止”。
请帮我解决这个问题
问候 库马兰
这是不好的做法,将长操作(在你的情况下,它是超过2分钟),以同步Web服务方法。通常,Web服务只是在后端服务器或至少另一个线程上启动长时间方法。客户可以定期检查操作是否完成(所谓的看门狗模式)。或者审查使用单向方法的可能性 - 当客户完全不关心结果时。
顺便说一句,注意,即使成功的Web请求操作必须ThreadAbort例外完成 - 因为HttpRequest的含有升华在请求处理
结束你要设置的请求超时也。这是默认的30或60秒。
在system.web
部分,将是这样的:
<httpRuntime executionTimeout="200"/>
这将影响到所有的页面,所以也许你希望把页面在一个单独的文件夹,这样你可以有一个本地的web.config文件为此设置。
检查innerexception。这应该有一些HttpApplication.CancelModelException
,应该包含一个标志,指示是否超时。无论哪种方式,如果你确实有内隐感觉,它可能会提供更多的洞察力。
此外,请确保您的方法设置为async。