我们有一个现有的WCF服务,它使用wsDualHttpBinding来启用对客户端的回调。我正在考虑将其移至netTcpBinding以获得更好的性能,但我非常谨慎地从IIS托管的服务(我们目前喜欢的“舒适区”)转变为拥有我们自己的Windows服务来托管它。我希望我们仍然可以在IIS 7上托管这个,但Win2K8在一段时间内不会成为现实。
在创建我们自己的Windows服务来托管我们的WCF服务时,我应该注意哪些事项?生命周期管理和请求限制等功能是IIS托管免费提供的功能所以我也想知道如何有效地托管我们的服务,而不会让IIS为我们付出艰苦的努力。谢谢! :)
答案 0 :(得分:11)
因为你无法使用WAS主持,所以有几件事要实现。
说过我9个月前为客户部署了一个WCF / Windows服务组合;它被大量使用,并没有死过一次。
您可以在Windows服务中request throttle,它是WCF配置的一部分。请注意,默认值非常低,您可能需要增加这些默认值。
答案 1 :(得分:2)
在Windows服务应用程序(http://msdn.microsoft.com/en-us/library/ms734781.aspx)中托管是一个良好的开端。
如果您可以在Vista上托管您的服务,您还可以从Windows进程激活服务(WAS)中受益。 WAS是IIS进程激活的一般化,可用于通过非HTTP端点(TCP,命名管道,MSMQ)激活进程。要了解有关WAS中托管的WCF的更多信息,请阅读http://msdn.microsoft.com/en-us/library/ms733109.aspx。要了解如何安装和配置WAS,请阅读http://msdn.microsoft.com/en-us/library/ms731053.aspx。