【问题标题】:Easiness of changing hosting of WCF from Self-hosting to Windows Service Hosting轻松将 WCF 的托管从自托管更改为 Windows 服务托管
【发布时间】:2012-06-30 12:37:54
【问题描述】:

我目前正在开发一个应该作为 WCF 服务实现的项目(当然还有一个客户端应用程序)。

该项目还需要使用实体框架(代码优先方法)作为服务和数据库之间的 ORM 层。

最终,此服务应作为 Windows 服务托管。一开始我想知道是否可以使用自托管,然后切换到 Windows 服务托管。在不手动复制文件和代码的情况下切换 Visual Studio 是多么容易。

谢谢

【问题讨论】:

  • 在 Windows 服务中托管自托管。没有区别。
  • 小写服务与大写服务不同(对我而言)。第一个链接是 Windows 服务(如在管理工具中)。仅 .exe 中的第二个链接主机。如果这将是一个数据服务,那么它通常托管在 IIS 中。仅发表评论,因为我不完全理解您的问题。
  • 好吧@Blam,我的服务最终应该作为 services.msc 中的服务之一运行它应该有 OnStart 和 OnStop 但每次我进行更改时都需要安装它,所以它不是适合调试。所以我想知道如何使用自托管进行调试,然后使其成为服务并实现安装程序
  • 如果是这个问题,那么你得到了一个很好的答案。

标签: c# .net wcf visual-studio-2010 wcf-hosting


【解决方案1】:

创建一个包含服务但不包含托管逻辑的“XXXServiceLibrary”项目 (dll)。在此处实现您的服务及其所有逻辑。

虽然您只关注服务,而不关心托管服务,但您可以使用以下主机之一:

  • WCFServiceHost (http://msdn.microsoft.com/en-us/library/bb552363.aspx)
  • IIS/WAS(创建一个 Web 项目 XXXIISServiceHost,并在 web.config 中输入必要的配置以托管您的服务。为简单起见,您也可以使用 .svc 文件)
  • 一个简单的控制台应用程序 XXXConsoleServieHost,并手动编写您的自托管逻辑。但是,如果您的服务不需要任何特殊的托管逻辑,请使用前两个选项之一。

当您完成服务的开发和单元测试后,创建您的 XXXWinSvcServiceHost 项目(Windows 服务),并在其中实现您的托管逻辑。

你明白了。将您的服务库与其托管项目分开。是的,从一台主机转移到另一台主机非常简单直接。大多数情况下,您不需要重复配置工作;把它复制过来。

【讨论】:

  • 谢谢穆萨。我想我会在开发过程中使用 WCFServiceHost
  • 不错的选择。我忘了提。在 Visual Studio 中,如果您创建“wcf 服务库”项目类型,它会为您集成 WCFServiceHost,以便您可以“启动”项目。您也可以在 Visual Studio 中自行设置。更好的是,您还可以在项目启动时启动 wcftestclient。见:blogs.msdn.com/b/wcftoolsteamblog/archive/2010/01/04/…
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多