2013-04-23 21 views
0

我已经创建了一个包含多个项目的解决方案。我有一个项目是WPF应用程序。此应用程序与服务逻辑应用程序进行通信。该应用程序将所有流量重定向到特定对象的不同管理者。这些经理通过几个班级与数据库进行交流。例如,解决方案中的其他项目就是可以与我连接的某些硬件进行通信的项目。在Windows服务中转换我的应用程序

如何将此解决方案(减去WPF应用程序?)转换为Windows服务?因此,硬件通信和数据库保存等所有功能仍在运行,我可以随时启动WPF UI以配置某些设置。

我真的不明白安装程序包装是如何工作的。我创建了一个创建中心逻辑类实例的服务。此实例只应创建一次,并实例化此类可确保启动其他管理器类以及处理来自外部硬件的事件的数据库处理程序类和类。所以简而言之,应用程序应该在实例化中央逻辑类时工作。所以在启动服务时应该完成所有工作,并且实例化该类。 WPF UI应用程序仅用于配置,并不一定需要。

如何创建此类服务并为此创建安装程序?看来,下面的代码是不够的:

protected override void OnStart(string[] args) 
{ 
    log.Debug("Starting service..."); 
    serviceLogic = new CentralLogic(); 
    log.Debug("Successfully started service"); 
} 

或者我要创建的安装程序错误。任何人都可以引导我走向正确的方向吗?

编辑:我仔细研究过它,似乎我将使用WCF让UI随后与服务进行通信。首先,我希望在我的Windows PC上安装该服务,并让它正常工作。在Visual Studio中运行解决方案时,一切都按照预期的方式工作。 WPF应用程序是启动并创建CentralLogic类的实例的应用程序。即使之后我不对UI做任何事情,只用硬件“玩”,一切都起作用。因此,创建CentralLogic类的实例应该足以让整个解决方案运行,因为此类管理其他类。只有创建安装程序,服务甚至是建筑物都会出现问题。我不知道该怎么做。

+0

阅读本文[演练:在组件设计器中创建Windows服务应用程序](http://msdn.microsoft.com/zh-cn/library/zt39148a.aspx)?解决方案没有做任何事情,它是您选择构建或发布的项目,它决定了输出的类型。只需添加一个Windows服务项目,发布并安装它,然后将您的WPF应用程序连接到它。 – CodeCaster 2013-04-23 10:22:05

回答

1

这是一个有益的演练http://msdn.microsoft.com/en-us/library/zt39148a(v=vs.100).aspx

你既可以构建UI到服务,或有其他应用程序,例如会谈服务使用WCF。

这应该也有帮助,Making an existing exe with gui into windows service但是,因为你已经把你的项目打破了你的一半。

+0

我同意,也许在服务中构建UI会更容易。我现在要看看你的链接。 – Joetjah 2013-04-23 10:23:31

+0

您需要检查目标操作系统。该服务需要与不再常见的桌面进行交互。就个人而言,我会选择与服务对话的应用程序 - 但这取决于您将要进行的改变有多大 – sambomartin 2013-04-23 10:27:15

相关问题