【发布时间】:2011-03-22 12:32:40
【问题描述】:
我编写了一些 WCF 服务,出于开发和调试目的,我以自托管方式运行。现在我已经建立了一个 Web 服务器,我正在考虑是否有任何理由将我的服务更改为在 IIS 7 下运行...如果可以,如何?..
【问题讨论】:
我编写了一些 WCF 服务,出于开发和调试目的,我以自托管方式运行。现在我已经建立了一个 Web 服务器,我正在考虑是否有任何理由将我的服务更改为在 IIS 7 下运行...如果可以,如何?..
【问题讨论】:
MSDN 有一篇文章探讨了不同的WCF hosting 模型。以下是关于自助托管的内容:
以下是自托管的优势:
- 易于使用:只需几行代码即可运行服务。
- 灵活:您可以通过 ServiceHost 的 Open() 和 Close() 方法轻松控制服务的生命周期。
- 易于调试:调试托管在自托管环境中的 WCF 服务提供了一种熟悉的调试方式,而无需附加到激活服务的单独应用程序。
- 易于部署:通常,部署简单的 Windows 应用程序与 xcopy 一样简单。您不需要任何复杂的服务器场部署方案等,即可部署用作 WCF ServiceHost 的简单 Windows 应用程序。
- 支持所有绑定和传输:自托管不会限制您使用开箱即用的绑定和传输。在 Windows XP 和 Windows Server 2003 上,IIS 将您限制为仅使用 HTTP。
以下是自托管的缺点:
- 有限的可用性:只有在应用程序运行时才能访问该服务。
- 功能有限:自托管应用程序对高可用性、易管理性、稳健性、可恢复性、版本控制和部署方案的支持有限。至少,开箱即用的 WCF 不提供这些功能,因此在自托管场景中,您必须自己实现这些功能;例如,IIS 在默认情况下就具有其中的几个功能。
【讨论】:
如果它没有坏:)
说真的:不要在 IIS 中执行 net.tcp WCF。省去很多麻烦。 HTTP WCF 应该没问题。
【讨论】:
我会考虑使用 VS2010 的“WCF 服务应用程序”项目模板创建一个新项目。我想你甚至可以参考你原来的程序集。重点是,如果您使用该模板,VS2010 会显示一个新工具栏,允许您发布到 IIS 服务器,该服务器会完成创建正确配置文件和文件夹的所有“艰苦工作”。
【讨论】:
好建议。以下是我用来将自托管转换为 IIS 托管的具体步骤:
第 1 步:创建 .NET Framework 4 WCF 服务应用程序
第 2 步:添加对 WCF DLL 的引用。
第 3 步:右键单击 Service1.scv(自动生成)并选择“查看标记”应该如下所示:code代码。
第 4 步:将“...Service1”替换为 DLL 中的服务。删除标签 CodeBehind="Service1.svc.cs"。
第5步:右键单击解决方案,发布到您的服务器/页面。启用“标记为 IIS...”。
第6步:打开yourserver/yourpage/Service1.scv
【讨论】: