为什么/如何将自托管WCF服务迁移到IIS7?

时间:2011-03-22 12:32:41

标签: c# wcf iis-7

我已经编写了一些WCF服务,用于开发和开发。调试目的我运行自托管。现在我有了一个Web服务器,我正在考虑是否有任何理由改变我的服务在IIS 7下运行......如果是的话,怎么样?...

4 个答案:

答案 0 :(得分:4)

MSDN有一篇探讨不同WCF hosting模型的文章。以下是关于自我托管的内容:

  

以下是自托管的优势:

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

以下是自托管的缺点:

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

答案 1 :(得分:1)

如果没有破坏:)

说真的:不要在IIS中执行net.tcp WCF。给你带来很多麻烦。 HTTP WCF应该没问题。

答案 2 :(得分:1)

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

答案 3 :(得分:1)

好建议。以下是我用于将自托管转换为IIS托管的确切步骤:

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