C#将控制台应用程序更改为服务?

时间:2018-08-07 07:09:45

标签: c# windows service

我创建了一个控制台程序,该程序是- 一个先获取数据然后将其保存到数据库的udp服务器。

如何在Windows启动时使其自动运行?

是否需要将其更改为Windows服务? -是的,我该怎么办?

谢谢,

2 个答案:

答案 0 :(得分:1)

我有类似的设置。出于开发目的,我启动/调试控制台程序,而生产环境中的软件在Windows服务中运行。

将程序逻辑存储到YourProgramName.Bib项目(类lib)中。 添加一个YourProgramName.Console项目,然后从中启动Bib。 现在添加一个YourProgramName.WindowsService项目,并从中启动Bib。这样,您在编译时会生成两个* .exe文件。

使用YourProgramName.WindowsService.exe文件进行Windows服务设置。

答案 1 :(得分:0)

如果您使用的是Windows的工作站版本,并且仅当用户登录后才可以运行该程序,请在启动文件夹中注册该程序的快捷方式。

或者,如果您想在Windows的服务器版本上进行操作,或者想在不登录工作站版本的情况下进行工作,则可以在Task Scheduler中进行注册。 应该将其设置为在系统引导时以具有管理员特权的用户身份运行。 Starting an Executable on System Boot

如果您不能执行以上任何一项操作,并且想要作为服务启动,则需要重新编写程序。

首先,有必要通过从程序中删除交互式输入/输出功能(例如控制台和对话框)进行设计。这是由于服务的会话0隔离的功能。 Impact of Session 0 Isolation on Services and Drivers in Windows

然后设计并创建程序即服务。解释在这里。 Developing Windows Service ApplicationsHow to: Create Windows Services