Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/296.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 将WCF的托管从自托管更改为Windows服务托管的方便性_C#_.net_Wcf_Visual Studio 2010_Wcf Hosting - Fatal编程技术网

C# 将WCF的托管从自托管更改为Windows服务托管的方便性

C# 将WCF的托管从自托管更改为Windows服务托管的方便性,c#,.net,wcf,visual-studio-2010,wcf-hosting,C#,.net,Wcf,Visual Studio 2010,Wcf Hosting,我目前正在做一个应该作为WCF服务实现的项目(当然还有一个客户端应用程序) 项目还需要使用实体框架(代码优先方法)作为服务和数据库之间的ORM层 最终,此服务应作为Windows服务托管。一开始我想知道我是否可以使用自托管,然后切换到Windows服务托管。在VisualStudio中切换而不手动复制文件和代码有多容易 谢谢创建一个“XXXServiceLibrary”项目(dll),该项目包含服务且不包含托管逻辑。在这里实现您的服务及其所有逻辑 虽然您只关注服务,而不关心托管服务,但您可以使用

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

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

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

谢谢

创建一个“XXXServiceLibrary”项目(dll),该项目包含服务且不包含托管逻辑。在这里实现您的服务及其所有逻辑

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

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


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

在Windows服务中托管是自托管。没有区别。那么这两者之间的区别是什么:和?小写字母服务和大写字母服务(对我来说)不一样。第一个链接是Windows服务(就像在管理工具中一样)。第二个链接主机只有一个.exe。如果这将是一个数据服务,那么它通常托管在IIS中。只是一个评论,因为我不完全理解你的问题。嗯@Blam,我的服务最终应该作为服务中的一个服务运行。msc它应该有OnStart和OnStop,但每次我进行更改时都需要安装它,因此不利于调试。所以我想知道如何使用自托管进行调试,然后使其成为一项服务并实现安装程序如果这是一个问题,那么您会得到一个很好的答案。谢谢Moussa。我想我会在开发过程中使用WCFServiceHost,这是一个不错的选择。我忘了提。在VisualStudio中,如果创建“wcf服务库”项目类型,它会为您集成WCFServiceHost,以便您可以“启动”项目。您也可以在VisualStudio中自行设置。更好的是,您还可以在项目启动时启动wcftestclient。见: