我一直在评估是否在Windows服务或IIS / asp.net中自我托管wcf服务
我想知道在自托管WCF时你遇到了什么样的现实问题。
答案 0 :(得分:3)
为什么你(以及许多其他人)立即假设自托管会导致问题(或者比在IIS中托管更多问题)?
我们几乎只使用一堆自托管的WCF服务(在Windows NT服务中),我不希望以任何其他方式使用它。对于任何严重的生产就绪主机,我会总是首先推荐自我托管。
<强>为什么吗
我可以完全控制服务的网址 - 没有IIS强制服务器名称,虚拟目录,端口和我的* .svc文件
我可以随意启动和停止这些服务,这在许多情况下非常有用
我完全支持所有绑定和协议 - 没有大惊小怪,没有麻烦 - 只是工作
我不必处理应用程序池,应用程序池回收和IIS的其他烦恼
再次:为什么你会自动认为自托管会导致问题吗?它实际上会阻止相当多的IIS问题!
答案 1 :(得分:0)
我想说,这主要是由您的传输协议驱动的。
如果您使用TCP或命名管道,我会提倡自托管(是的,我知道IIS可以做,但我希望自我托管的灵活性)。但是对于HTTP,我认为IIS是要走的路,因为它涵盖了许多在自托管中实现的大量工作。
自托管TCP或命名管道服务既快捷又简单,没有特殊的问题。只有在命名管道上,我必须说Windows Vista / 7/2008上的named pipe hardening使模型变得更加复杂,对我来说,它几乎无法使用。