我有一个问题,让我有点困惑。我完全不知道它会是什么。
我使用的系统是Windows Vista,IIS7.0,VS2008,Windows Software Factory,Entity Framework,WCF。所有The服务的绑定都是wshttpbinding。
我正在使用IIS中托管的IIS服务。此IIS服务使用/调用另一个IIS服务(也安装在IIS中)。如果我使用一个调用第一个Webservice (它调用第二个Webservice)的客户端,它可以正常工作4-10次。然后(这个问题是可重复的,但有时会在4次之后发生,有时会在10次之后发生,但它总是会发生),Service和IIS就卡住了。
卡住意味着此Webservice不再可调用,并在1分钟后生成超时。即使增加超时也不会改变任何事情。
如果我尝试重新启动IIS,我会得到一个超时错误(这真的让我很困惑。似乎IIS服务以某种方式“崩溃”并阻止了IIS的重启)。所以IIS也被“卡住”了(它并不是真的卡住了,但是我不能重新启动它)。只有当我杀死service时,它才能重新启动,并且w3wp.exe服务将再次工作(直到我再次调用此服务几次)。
像http日志、事件查看器或WCF消息日志这样的日志文件(我不是日志记录或在哪里找到/启用此类日志的专家,所以可以说:我是一个新手)没有显示任何关于问题根源的提示。
当我使用不调用其他服务的when服务时,我不会遇到这个问题。调用but服务是通过服务引用完成的(我没有使用代理类),但我认为这应该没有问题。
我不知道发生了什么,也不知道如何解决这个问题。
向Rene致敬
编辑。:我希望我的帖子现在更具可读性:-)
发布于 2010-05-11 20:56:13
在您的web服务代码中插入System.Diagnostics.Debugger.Break()。当达到这一点时,您将能够单步执行服务逻辑。这可能有助于您诊断死锁的原因。
另一种选择是turn on WCF Tracing,并通过这种方式进行诊断。
https://stackoverflow.com/questions/2809848
复制相似问题