为什么要在Windows服务中托管wcf服务?

时间:2010-02-09 02:53:34

标签: wcf

您希望在Windows服务中而不是在IIS中托管wcf服务的原因是什么?

3 个答案:

答案 0 :(得分:3)

一个原因是IIS6仅支持基于HTTP的绑定。如果你想使用TCP,MSMQ等,那么你需要在一个单独的程序中托管。

答案 1 :(得分:2)

  • 在IIS中托管时,只允许在每个网站中绑定到每个基址的单个端口(意味着您无法指定具有不同端口的两个绑定,因为您只能使用单个端口,或者使用不同端点的端点端口)
  • 您只能在IIS中使用单个基地址,唯一的解决方法是在不同的网站中部署同一项目的多个版本(哎呀)
  • IIS进程必须最终回收,并且当它进行时它会转储所有内容并重新启动,这是很好的时间,因为内存被释放并且被释放的资源被释放,但是当使用单例时,这可能会产生一种低效的效果,具体取决于你的代码

[edit]:更多积分

  • 在标准设置中,您的工作进程始终具有2GB可用虚拟内存(无论您的计算机中是否有1,2或4GB物理内存)。

答案 2 :(得分:1)

  1. 自由。您作为开发人员不需要有人管理该框
  2. 有时IIS6真的有点矫枉过正
  3. 您正在将其用作进程间通信管道
  4. 您希望在代码中声明所有绑定。这比看起来风靡一时的xml配置文件更容易混淆和更强大。我无法想象许多场景,我希望非程序员搞乱绑定。 xml方法适用于原型设计和需要高度动态的系统,但总的来说我不认为这是一个好主意