首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >运行单元(集成)测试时的ContextSwitchDeadlock

运行单元(集成)测试时的ContextSwitchDeadlock
EN

Stack Overflow用户
提问于 2009-08-28 08:42:20
回答 1查看 1.1K关注 0票数 0

当我们在测试中运行时,我们得到以下错误:

代码语言:javascript
复制
ContextSwitchDeadlock was detected
Message: The CLR has been unable to transition from COM context 0x344b0c0 to COM 
context 0x344b230 for 60 seconds. The thread that owns the destination context/apartment is
most likely either doing a non pumping wait or processing a very long running operation 
without pumping Windows messages. This situation generally has a negative performance 
impact and may even lead to the application becoming non responsive or memory usage 
accumulating continually over time. To avoid this problem, all single threaded apartment 
(STA) threads should use pumping wait primitives (such as CoWaitForMultipleHandles) and 
routinely pump messages during long running operations.

该测试对服务层上的一个方法执行WCF调用,该方法使用实体框架从数据库中获取数据。还可以使用EntLib缓存应用程序块在服务器端缓存数据。

在服务器端测试相同代码的测试没有错误地通过。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2009-08-29 07:05:37

找到了问题所在。

我们没有正确关闭WCF代理。我们使用的是" using“而不是try catch with close或abort。

因此,一个测试中的错误将导致在尝试使用相同的WCF服务的后续测试中出现ContextSwitchDeadlock。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/1345755

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档