我们有一个服务器应用程序,它在一个单独的服务器上安装了一个模块,并希望使用WCF使这两个模块相互通信。我已经将其缩小到在IIS7 / WAS或没有IIS的WAS中托管WCF。主应用程序的主要目的实际上是作为基于tcp / ip套接字的服务器来处理一些进入的数据.IIS7或WAS最适合这种类型的项目吗?
如果我们确实使用WAS,那么构建一个控制台应用程序来托管WAS是否有意义?
答案 0 :(得分:3)
在IIS7中托管是WAS - 它们不是独占的。我相信你问的是我应该“自我托管”还是使用IIS7。
如果您使用IIS,那么您不需要为自己的服务主机设置角色,并在为您处理崩溃后重新启动。
如果您使用自托管服务,那么您将需要编写托管服务的程序(如果您想要一些常用的东西,通常是Windows服务),您将需要手动处理崩溃和重启。
然而,自托管程序可以更快(不是很多,但有时候很重要 - 测量它)并且会占用更少的内存。根据所使用的协议,WAS也可能受到IIS连接限制(例如Vista下10个)的限制。
答案 1 :(得分:2)
IIS7可以托管非HTTP服务的唯一原因是它使用WAS来执行此操作。你的选择不是互相排斥的。