【问题标题】:Why/how to migrate self-hosted WCF service to IIS7?为什么/如何将自托管 WCF 服务迁移到 IIS7?
【发布时间】:2011-03-22 12:32:40
【问题描述】:

我编写了一些 WCF 服务,出于开发和调试目的,我以自托管方式运行。现在我已经建立了一个 Web 服务器,我正在考虑是否有任何理由将我的服务更改为在 IIS 7 下运行...如果可以,如何?..

【问题讨论】:

    标签: c# wcf iis-7


    【解决方案1】:

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

    以下是自托管的优势:

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

    以下是自托管的缺点:

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

    【讨论】:

      【解决方案2】:

      如果它没有坏:)

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

      【讨论】:

      • +1 感谢 net.tcp 提示。我正在使用 net.tcp,我可以在我的生活中使用更少的头痛! ;)
      • 在 IIS 中使用 net.tcp WCF 时遇到的具体问题是什么?
      • @Oren 你是在我回答 4 年后才问这个?让我们说很多应该有效的事情没有奏效,或者只是在某些时候。虽然也许新版本的 .Net 和 IIS 对其进行了改进......
      • @VincentVancalbergh - 很公平。不确定你是否被这段经历伤得足以记住细节:) - 我很感激这个警告。
      【解决方案3】:

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

      【讨论】:

        【解决方案4】:

        好建议。以下是我用来将自托管转换为 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

        【讨论】:

          猜你喜欢
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 2011-09-04
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          相关资源
          最近更新 更多