2011-05-11 63 views
10

我有一个简单而直接的问题:是否有任何性能优势(或任何其他类型的好处)我不知道何时比较在IIS 7.5中托管WCF服务和。Windows服务?在IIS 7.5和Windows服务中托管WCF性能注意事项

我不是在这个话题的黑暗中,实际上承载了这两个托管环境中的几个WCF服务。不过,我即将开始一项新的服务,它有更多的用途,并希望“重新访问”这个话题。现在我倾向于使用Windows服务。

我读过的帖子如下:IIS WCF service hosting vs Windows Service它提供了一些很好的信息,但有点过时(是的,即使只有1.5岁;仍然使用代号'Dublin Technologies')。

对于我来说,没有对Windows服务的支持,因为我对安装,部署和配置(包括向托管WCF服务的端口应用SSL证书)很满意,所以这对我来说并不是什么大不了的事情。 。IIS。

我一直以为申请回收利用IIS将是一个下行托管WCF服务,让潜在的通信可能断裂。我知道一个.asmx IIS托管服务(转换为WCF),我已经收到了随机'401 Unauthorized'(我的意思是每5-10,000次调用一次,真的是随机的),并且标记了IIS和它的能力保持沟通100%的时间没有应用程序池被回收(可能导致问题? - >这个问题是而不是在这里的问题,仅供参考)。所以我想知道IIS。

因此,我想在Windows服务与IIS 7.5中的Windows Server 2008 R2上托管WCF服务,以当前日的角度来看(许多MSDN比较图表也已过时,始终与IIS 6比较) 。谢谢!!

回答

5

对于IIS的AppFabric版本,在IIS 7.5上托管WCF服务变得更容易和更可靠。 AppFabric允许您配置服务以启动应用程序池启动并防止池像正常的Web应用程序一样循环使用。它还提供了一些方法来允许您的WCF服务记录有关其运行状况的信息并监视服务。

对于我最近的WCF项目,我已经用ASP.Net 4和AppFabric用.svc扩展来托管代码。 (目前,AppFabric中有路由问题的监测服务 - 这样的.svc文件是必需的)

这里有几个关于WCF和AppFabric的更多有用的链接:

我在IIS方法中看到的另一个优点是它允许您在它旁边创建页面以帮助监视,维护和配置服务。使用Windows服务,您必须手动编辑您的配置文件或创建一个应用程序来为您处理它。在WebForms/MVC应用程序旁边托管WCF的能力在我的书中是一个巨大的优势。显然,你需要确保以某种方式保护它,以防止其他人窥视和查看状态/配置它。

+0

Lovin'新的应用程序结构。我喜欢WCF,所以这些新东西都是 – NovaJoe 2011-05-11 15:42:16

+0

AppFabric实际上并没有托管* WCF服务,但是正确吗?它只是提供了我读过的监控增强功能。 AppFabric也不是免费安装,并且必须安装在服务器上吗?不显示阻止者,但有时在服务器上获取新软件需要国会的行为。 – atconway 2011-05-12 20:27:18

+1

你是对的,AppFabric实际上并不托管* WCF服务。 AppFabric是IIS的免费附加组件。因此,如果您可以通过W2k8R2上的IIS合法托管WCF,则可以使用AppFabric。除了它提供的监视功能外,它还可以提供一种启动方法来加热服务并使其保持活动状态而无需回收。 – Joshua 2011-05-12 21:46:27