【问题标题】:Hosting WCF in IIS 7.5 vs Windows Service for Performance Considerations出于性能考虑,在 IIS 7.5 与 Windows 服务中托管 WCF
【发布时间】:2011-05-11 12:55:47
【问题描述】:

我有一个简单而直接的问题:在比较在 IIS 7.5 中托管 WCF 服务与在 Windows 服务中托管时,是否有任何性能优势(或任何其他类型的优势)?

我对这个话题并不陌生,实际上我已经在两个托管环境中托管了多个 WCF 服务。但是,我正要启动一项使用较多的新服务,并希望“重新访问”该主题。现在我正在学习 Windows 服务。

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

对我来说,Windows 服务没有任何问题,因为我对设置、部署和配置(包括将 SSL 证书应用到托管 WCF 服务的端口)非常满意,所以这对我来说没什么大不了的。 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 进行比较)。谢谢!!

【问题讨论】:

    标签: .net wcf windows-services iis-7.5 windows-server-2008-r2


    【解决方案1】:

    随着 IIS 的 AppFabric 的发布,在 IIS 7.5 上托管 WCF 服务变得更加容易和可靠。 AppFabric 允许您将服务配置为在应用程序池启动时启动,并防止池像普通 Web 应用程序一样回收。它还提供了允许 WCF 服务记录有关其运行状况的信息并监控服务的方法。

    对于我最近的 WCF 项目,我使用 ASP.Net 4 和带有 .svc 扩展名的 AppFabric 来托管代码。 (目前,AppFabric 存在监控路由服务的问题 - 因此需要 .svc 文件)

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

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

    【讨论】:

    • 喜欢新的 App Fabric。我喜欢 WCF,所以所有这些新东西都是
    • AppFabric 实际上并没有 host WCF 服务虽然正确吗?它只是在我阅读时提供监控增强功能。 AppFabric 也不是免费安装的,必须安装在服务器上对吗?不显示阻止程序,但有时在服务器上获取新软件需要国会行为。
    • 你是对的,AppFabric 实际上并不托管 WCF 服务。 AppFabric 是 IIS 的免费插件。因此,如果您可以通过 W2k8R2 上的 IIS 合法地托管 WCF,则可以使用 AppFabric。除了它提供的监控功能之外,它还可以提供一种启动方法来预热服务并使其保持活动状态而无需回收。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2011-07-25
    • 2013-08-06
    • 1970-01-01
    • 1970-01-01
    • 2022-12-13
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多