Adr*_*ron 1 windows service topshelf
在构建Windows服务时,有没有人有使用TopShelf的经验?
尝试启动服务时,我一直遇到此错误,
"尚未安装Topshelf.HostConfigurators.WindowsServiceDescription服务."
完成构建,安装程序,安装和所有这些步骤,并且该服务显示在Windows Server的服务列表中,但是当我单击该服务并尝试启动它时,将抛出此异常.完整的错误消息如下所示.
INFO 10:23:08作为winservice应用程序启动FATAL 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中的Topshelf.Windows.WindowsServiceHost.Run()中:在Topshelf.HostFactory.Run(Action`1 configure)中的第56行:\ BuildAgent-01\work\799c08e77fef999d\src\Topshelf\Config\HostFactory.cs:第45行
问题很可能是您的服务名称中有空格.无论出于何种原因,Topshelf 2.2.2.0都能正确搜索名称中有空格的服务,即使该服务可能安装了空格,即"我的服务".当TopShelf搜索服务以检查它是否已安装时,它只会查找"我的".
这是您可以用来查看盒子上安装的服务的代码段:
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();
}
}
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
2658 次 |
| 最近记录: |