【发布时间】:2010-05-11 10:28:56
【问题描述】:
我有一个让我有点困惑的问题,分别。我不知道它可能是什么。
我使用的系统是 Windows Vista、IIS 7.0、VS2008、Windows Software Factory、Entity Framework、WCF。所有 Web 服务的 Binding 都是 wshttpbinding。
我正在使用 IIS 中托管的 Web 服务。此 Web 服务使用/调用另一个 Web 服务(也安装在 IIS 中)。如果我使用调用第一个 Web 服务(调用第二个 Web 服务)的客户端,它可以正常工作大约 4-10 次。然后(得到这个问题是可重复的,但有时会在 4 次之后发生,有时会在 10 次之后发生,但它总是会发生),服务和 IIS 卡住了。
Stuck 表示此 Web 服务不再可调用,并在 1 分钟后生成超时。 即使增加 Timeout 也不会改变任何事情。
如果我尝试重新启动 IIS,我会收到超时错误(这真的让我很困惑。似乎 Web 服务以某种方式“崩溃”并阻止了 IIS 的重新启动)。所以 IIS 也“卡住”了(它并没有真正卡住,但我无法重新启动它)。只有当我杀死 w3wp.exe 时,IIS 才能重新启动并且 Web 服务将再次工作(直到我再次调用该服务几次)。
http-logging、Event Viewer 或 WCF-Message Logging 等日志文件(我不是日志记录或在何处查找/启用此类日志的专家,可以说:我是新手)不显示关于问题根源的任何提示。
当我使用不调用另一个服务的 Web 服务时,我没有这个问题。 调用 Web 服务是由 Service Reference 完成的(我没有使用 Proxy-Classes),但我认为这应该没有问题。
我不知道发生了什么,也不知道如何解决这个问题。
问候 雷内
编辑。 : 我希望我的帖子现在更具可读性:-)
【问题讨论】:
-
段落可能会帮助您获得更多答案 - 很难阅读您的问题。您的网络服务中的代码在做什么?其他网络服务在做什么?可以发一些代码吗?
-
代码查询数据库以获取一些信息。这是一个简单的 DB-Read(用 Linq 完成),只返回一个字符串。因此,代码中没有做任何复杂的事情。我也用更复杂的代码测试了它(更复杂意味着返回更多数据),但我也有这个问题。我可以尝试的唯一解决方案步骤(我对整个主题的了解非常有限)是将绑定从 wshttpbinding 更改为 basichttpbinding(我也必须使用 wshttpbinding)。
标签: wcf iis web-services