轻松将WCF的托管从自托管更改为Windows服务托管

问题描述:

我目前正在开发一个应作为WCF服务(当然还有客户端应用程序)实施的项目。轻松将WCF的托管从自托管更改为Windows服务托管

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

最终,此服务应作为Windows服务托管。我在开始时想知道是否可以使用自托管,然后切换到Windows服务托管。在没有手动复制文件和代码的情况下切换视觉工作室非常简单。

感谢

+0

托管Windows服务_is_ self-hosting。没有区别。 –

+0

那么这两者之间有什么区别:http://msdn.microsoft.com/en-us/library/ms733069.aspx和http://msdn.microsoft.com/en-us/library/ms731758.aspx? –

+0

小写服务与大写服务(对我而言)不一样。第一个链接是Windows服务(如在管理工具中)。第二个链接主机只是一个.exe。如果这将是一个数据服务,那么它通常在IIS中托管。只有一个评论,因为我不完全理解你的问题。 – Paparazzi

创建一个包含服务和托管没有逻辑 “XXXServiceLibrary” 项目(DLL)。在这里实施你的服务和他们所有的逻辑。

当你专注于服务而已,并没有关心收留他们,你可以使用下面的主持人之一:

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

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

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

+0

谢谢穆萨。我想我会在开发期间使用WCFServiceHost –

+0

不错的选择。我忘了提及。在Visual Studio中,如果您创建了“wcf服务库”项目类型,它为您整合了WCFServiceHost,因此您可以“启动”该项目。 你也可以在visual studio中自己设置它。 更好的是,您也可以在项目启动时启动wcftestclient。请参阅:http://blogs.msdn.com/b/wcftoolsteamblog/archive/2010/01/04/tips-for-launching-wcf-test-client.aspx – xtrem

+0

非常感谢 –