安装Windows服务和存储设置(数据)的典型路径

时间:2015-06-05 06:28:09

标签: c# windows

我是Windows服务的初学者,想问你几个问题。我做了一些研究,但仍有一些问题,我想澄清一下。

首先,我使用C#开发了标准的Windows服务。 现在,我需要将它安装在不同的机器上。

问题1 :我可以在不同的机器上安装它的方法是什么?

问题2 :安装是否相同,取决​​于是否是其他计算机 是否已安装Visual Studio?

最后,我听说有人可能需要使用某种安装程序(这是唯一的方法吗?)。假设用户指定文件夹Program Files安装服务的位置。这是否意味着服务可执行文件,例如,myservice.exe将被复制到程序文件文件夹中?我问这个因为我想要 使用服务中的BaseDirectory来读取一些设置文件(这可能会返回C:\Program Files\MyService\之类的路径),而且我在Windows 7上的某个地方读过你甚至不允许写入程序文件。 如果是这样,哪个文件夹通常用于存储设置,Windows服务日志?

1 个答案:

答案 0 :(得分:0)

答案1 :如果您已实施C#.NET Windows服务,则可以使用sc createnet start进行安装:

set p=%~dp0  
sc create %1YourServiceName binpath= %p%YourServiceName.exe start=auto  
net start %1YourServiceName

该服务将安装在本地计算机上并立即运行。

答案2 :不。您不需要在目标计算机上安装Visual Studio来启动此服务。但是,您需要安装相应版本的.NET FrameWork。

回答3 :我不知道您使用的是哪种安装程序。如果用户将Program Files文件夹指定为安装目标,则很可能会将可执行文件复制到那里。

如果你使用我在p.1中描述的方法,那么exe的可执行路径将是当前的。创建文件夹" C:\ YourServiceName",复制你的win服务箱并在那里运行这个批处理脚本。您的可执行文件路径为" C:\ YourServiceName"让它永远存在。

顺便说一下,如果需要,可以从代码中获取Windows服务的执行路径:

AppDomain.CurrentDomain.BaseDirectory

此外,它存储在您的注册表中:

SYSTEM/CurrentControlSet/services/YourServiceName/ImagePath