为什么要在Windows服务中承载wcf服务?
您希望在windows服务中而不是在IIS中托管wcf服务的原因是什么?一个原因是IIS6仅支持基于HTTP的绑定。如果您想使用TCP、MSMQ等,则需要在单独的程序中托管为什么要在Windows服务中承载wcf服务?,wcf,Wcf,您希望在windows服务中而不是在IIS中托管wcf服务的原因是什么?一个原因是IIS6仅支持基于HTTP的绑定。如果您想使用TCP、MSMQ等,则需要在单独的程序中托管 自由。作为开发人员,您不需要有人来管理这个盒子 有时候IIS6真的是太过分了 您正在将其用作进程间通信管道 您希望在代码中声明所有绑定。这远没有流行的xml配置文件那么混乱,也更强大。我无法想象有多少场景我会希望非程序员搞乱绑定。xml方法适用于需要高度动态的原型和系统,但总的来说,我认为这不是一个好主意 在IIS中托管时
- 在IIS中托管时,每个网站中每个基址只允许绑定到一个端口(这意味着您不能使用不同端口指定两个绑定,因为您只能使用一个端口,或者使用不同端口的端点)
- 在IIS中只能使用单个基址,唯一的解决方法是在不同的网站上部署同一项目的多个版本(恶心)
- IIS进程最终必须循环,当它这样做时,它会转储所有内容并重新启动,这在很大程度上是好的,因为内存已被释放,捕获的资源已被释放,但在使用单例时,这可能会产生不足的效果,具体取决于您的代码
- 在标准设置中,工作进程始终有2GB虚拟内存可用(无论机器中有1、2或4GB物理内存)