【问题标题】:Strange Problem with Webservice and IISWebservice 和 IIS 的奇怪问题
【发布时间】: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


【解决方案1】:

System.Diagnostics.Debugger.Break() 插入您的网络服务代码。当达到该点时,您将能够逐步执行服务逻辑。这可以帮助您诊断死锁的原因。

另一种选择是turn on WCF Tracing,并以这种方式进行诊断。

【讨论】:

    猜你喜欢
    • 2011-09-05
    • 2010-09-30
    • 1970-01-01
    • 1970-01-01
    • 2015-07-01
    • 2021-12-08
    • 2015-12-20
    • 2011-10-10
    • 2017-05-27
    相关资源
    最近更新 更多