IIS 7.5中托管的WCF(net.tcp)的问题

时间:2012-02-14 11:03:44

标签: wcf

我使用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进程吗?即使没有人使用这些服务,他们仍然在任务管理器上。我想这就是我的实体库日志记录在我的请求完成后锁定文件的原因。

1 个答案:

答案 0 :(得分:0)

理想情况下,它会更好地托管在Windows激活服务(WAS)中,这与您认为的IIS接近,但并不完全。这是关于MSDN杂志的一篇很好的介绍性文章:

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