托管的WCF服务以任何方式受限?

在Windows服务中自托管WCF服务是否有任何限制(性能,内存,线程等)而不是使用IIS? 有大量的文章显示如何做到这一点,但很少讨论如果你应该这样做。 我构建的一个相当复杂的应用程序需要我自行托管WCF服务以进行点对点通信。 在服务器上使用与全局用户必须访问的“主”服务相同的自托管模式是非常诱人的。


要考虑的要点是:

  • 端口共享:IIS为您免费提供端口共享。 要在自己托管的环境中使用端口共享,您需要自己处理
  • 可用性有限:只有在应用程序运行时才能访问服务。
  • 有限的功能:自托管应用程序对高可用性,易管理性,健壮性,可恢复性,版本控制和部署方案的支持有限。 至少,开箱即用的WCF不提供这些功能,因此在自主托管的场景中,您必须自己实现这些功能; 例如,IIS在默认情况下提供了其中一些功能。
  • 查看MSDN文档,了解您需要考虑的权衡概述。


    我帮助构建了两个利用WCF自托管的系统,并且它工作得很好(我们使用NetTCP作为底层通信协议)。 这主要是一个概念证明,看看我能否做到这一点,并且最终运行得非常好,尽管有一些性能方面需要考虑。 首先,根据服务数量的不同,你的内存占用量可能会变大一些 - 我所构建的服务有40个独立服务,但接下来的支持团队不断增加新服务,最后我听到了92。 这开始引入一些缓慢的启动时间,除非你在自己的AppDomain下打开每个进程的初始化过程(你肯定会想做的事情)有一些额外的开销。 我不能说是否性能比IIS托管更好/更差,但总体而言,它的确运行良好 - 只是准备好了解关于后台线程和AppDomain的相当数量作为过程的一部分。

    链接地址: http://www.djcxy.com/p/54937.html

    上一篇: hosted WCF services limited in any way?

    下一篇: WebService memory usage when hosted in CassiniDev after rebuild