2011-03-22 44 views

回答

4

MSDN有一篇文章探讨了不同的WCF hosting模型。下面是它不得不说的自我托管:

以下是优点自托管:

  • 易于使用:由于只有几行代码,你有你的服务运行。
  • 灵活:您可以通过ServiceHost的Open()和Close()方法轻松控制服务的生命周期。
  • 易于调试:调试托管在自托管环境中的WCF服务可提供熟悉的调试方式,而无需附加到激活服务的单独应用程序。
  • 易于部署:通常,部署简单的Windows应用程序就如同xcopy一样简单。您不需要在服务器场中使用任何复杂的部署方案等,以部署一个简单的Windows应用程序,该应用程序充当WCF ServiceHost。
  • 支持所有绑定和传输:自托管并不限制您开箱即用的绑定和传输任何内容。在Windows XP和Windows Server 2003上,IIS仅限于HTTP。

以下是自托管的缺点:

  • 数量有限:服务应用程序正在运行,只有当到达。
  • 有限功能:自托管应用程序对高可用性,易管理性,健壮性,可恢复性,版本控制和部署方案的支持有限。至少,开箱即用的WCF不提供这些功能,因此在自主托管的场景中,您必须自己实现这些功能;例如,IIS在默认情况下提供了其中一些功能。
1

如果未中断: )

严重:不要在IIS中执行net.tcp WCF。为您节省很多头痛。 HTTP WCF应该没问题。

+0

+1感谢net.tcp提示。我使用net.tcp,并且我的生活中可以使用更少的头痛!) – 2011-03-22 13:24:17

+0

什么是特定的头痛你在IIS中使用了net.tcp WCF吗? – 2015-09-01 16:57:56

+0

@Oren你在问我答案后的4年中问这个问题吗?我们只是说很多应该工作的东西没有用,或者只有一些时候。 .Net和IIS的版本已经改进了它... – 2015-09-01 20:54:46

1

我会考虑使用VS2010的“WCF服务应用程序”项目模板创建一个新项目。你甚至可以参考你想要的原始程序集。要点是,如果使用该模板,VS2010会显示一个新的工具栏,允许您发布到IIS服务器,该服务器完成创建正确配置文件和文件夹的所有“艰苦工作”。

1

好的建议。以下是我用于将自承载到IIS托管的确切步骤:

步骤1:创建.NET Framework 4 WCF服务应用程序
步骤2:将引用添加到WCF DLL。
步骤3:右键单击Service1.scv(自动生成)并选择“查看标记”应该如下所示:代码<%@ ServiceHost Language =“C#”Debug =“true”Service =“WcfService4.Service1”CodeBehind =“Service1.svc.cs”%>代码。
第4步:替换“...Service1“与DLL的服务相关联,删除标签CodeBehind =”Service1.svc.cs“
步骤5:右键点击解决方案,发布到你的服务器/页面启用”标记为IIS ...“
第6步:打开yourserver/yourpage/Service1.scv