我已经创建了一个Windows服务并将其安装在服务器上。它似乎工作得很好,即做其意图。但是当我通过远程桌面登录服务器时,我收到了以下消息:
无法从命令行或调试器启动服务。一个窗户 必须先安装服务(使用installutil.exe),然后再安装 从ServerExplorer,Windows服务管理工具开始 或NET START命令。
我点击然后转到服务资源管理器检查服务,它开始正常。没有报告错误。
我已经安装了这个,所以它使用Local System作为“Log On As”。
感谢。
答案 0 :(得分:41)
更改Main
课程中的Program
方法,如下所示:
/// <summary>
/// The main entry point for the application.
/// </summary>
private static void Main()
{
var myService = new MyService();
if (Environment.UserInteractive)
{
Console.WriteLine("Starting service...");
myService.Start();
Console.WriteLine("Service is running.");
Console.WriteLine("Press any key to stop...");
Console.ReadKey(true);
Console.WriteLine("Stopping service...");
myService.Stop();
Console.WriteLine("Service stopped.");
}
else
{
var servicesToRun = new ServiceBase[] { myService };
ServiceBase.Run(servicesToRun);
}
}
您必须向服务类添加Start
方法:
public void Start()
{
OnStart(new string[0]);
}
在项目属性的“应用程序”选项卡中将项目的输出类型更改为“控制台应用程序”而不是“Windows应用程序”。现在您可以按F5开始调试,但仍然可以将可执行文件作为Windows服务运行。
答案 1 :(得分:-4)
按CTRL-ALT-CANC(*),然后转到“服务”选项卡。有一个服务列表,搜索您需要启动的服务,选择它并单击“开始”。 如果它不存在,可能是它被卸载,没有(正确?)安装,或者由于某些其他原因,Windows不知道您的服务。
(*)或CTRL-ALT-DEL(ete)或其他,取决于键盘语言。
答案 2 :(得分:-4)
转到App.config
查找
<setting name="RunAsWindowsService" serializeAs="String">
<value>True</value>
设为假