【问题标题】:Issues with WCF (net.tcp) hosted in IIS 7.5IIS 7.5 中托管的 WCF (net.tcp) 问题
【发布时间】:2012-03-05 18:05:18
【问题描述】:

我用 5 个 wcf 服务构建了一个应用程序,并将它们托管在 IIS 7.5 中。我使用 net.Tcp 端口 (808*) 的默认配置。

我不习惯在 IIS 中托管 WCF 服务(我一直托管在 Windows 服务中),我发现有趣的是,当我调用服务(使用 tcp 绑定)时,服务器上有两个不同的进程。

一个是 SMSvcHost.exe(实际使用 808 端口的那个),另一个是 w3wp.exe,我认为它正在处理我正在调用的服务器实例。

我有很多问题,所以我将一一列举:

  1. 是否应该使用 IIS 而不是 Windows 服务来托管 WCF 服务(tcp 绑定)?
  2. 我有两个进程来回答我的请求这一事实意味着我可能会影响 cpu 吗?
  3. 有时我的服务停止使用 tcp 绑定应答。我的客户遇到超时错误,但如果我转到http://myServer/Service1.svc,mex 会正确回答。我怀疑这个问题是由错误连接引起的,但我正确抛出异常(使用错误异常)并在我的客户端上正确捕获它们。此外,我还为每个服务实现了一个部分类以正确处理(使用 Close 或 Abort 方法)。有什么方法可以弄清楚服务停止响应时发生了什么?
  4. 客户端结束请求后w3wp.exe进程不应该关闭吗?即使没有人使用这些服务,它们也会保留在任务管理器中。我想这就是我的实体库日志记录在我的请求完成后锁定文件的原因。

【问题讨论】:

    标签: wcf


    【解决方案1】:

    理想情况下,它最好托管在 Windows Activation Services (WAS) 中,它与您所认为的 IIS 很接近,但并不完全如此。这是 MSDN 杂志上一篇不错的介绍性文章:

    http://msdn.microsoft.com/en-us/magazine/cc163357.aspx

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2011-07-21
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多