有人在构建Windows Services时有过使用TopShelf的经验吗?
在尝试启动服务时,我不断遇到此错误,
尚未安装"Topshelf.HostConfigurators.WindowsServiceDescription服务。“
构建、安装程序、安装以及所有这些步骤都已完成,并且该服务显示在Windows Server的服务列表中,但是当我单击该服务并尝试启动它时,会抛出此异常。完整的错误消息如下所示。
信息10:23:08作为winservice应用程序启动致命的10:23:08尚未安装Topshelf.HostConfigurators.WindowsServiceDescription服务。请运行'RIS.ModelGenerator.Scheduler,Version=1.0.0.0,Culture=neutral,PublicKeyToken=null install‘。错误10:23:08服务异常退出,出现异常Topshelf.Exceptions.ConfigurationException:尚未安装Topshelf.HostConfigurators.WindowsServiceDescription服务。请运行'RIS.ModelGenerator.Scheduler,Version=1.0.0.0,Culture=neutral,PublicKeyToken=null install‘。在d:\BuildAgent-01\work\799c08e77fef999d\src\Topshelf\OS\Windows\WindowsServiceHost.cs:line 56中的Topshelf.Windows.WindowsServiceHost.Run()在d:\BuildAgent-01\work\799c08e77fef999d\src\Topshelf\Config\HostFactory.cs:line 45中的Topshelf.HostFactory.Run(动作`1配置)
发布于 2011-10-03 01:50:24
看起来,我有一个不能正常工作的版本(看起来是最新的版本)。我不得不回滚(通过NuGet感谢)到之前的版本,2.0之前的版本,以解决我的问题。我正在做的项目似乎也与v2.0之前的一些特性/方法挂钩,因此出现了随之而来的问题。
感谢Jeff Schumacher在这个问题上的额外帮助。希望TopShelf软件得到更新,以便在当前版本中不会出现这些差异。
发布于 2011-10-08 04:27:14
问题很可能是您的服务名称中有空格。无论出于什么原因,即使服务的安装名称中可能包含空格,也可以正确搜索名称中包含空格的服务。“我的服务”。当TopShelf搜索该服务以检查其是否已安装时,它将只查找"My“。
下面是你可以用来查看你机器上安装的服务的代码片段:
using System;
using System.Linq;
public class Foo
{
public static void Main()
{
foreach(var x in System.ServiceProcess.ServiceController.GetServices().OrderBy(x => x.ServiceName))
{
Console.WriteLine("Service Name: '{0}';, Display Name: '{1}'", x.ServiceName, x.DisplayName);
}
Console.ReadKey();
}
}https://stackoverflow.com/questions/7351973
复制相似问题