76得票4回答
安装Topshelf应用程序作为Windows服务

使用Visual Studio Express 2012,我创建了一个控制台应用程序,并使用Topshelf(版本3.1.107.0)进行了开发。该应用程序可以运行作为控制台应用程序,但我不知道如何将其安装为服务。我从Visual Studio中发布了项目(构建、发布),以管理员身份启动了命令...

38得票5回答
Windows服务中能否使用Console.WriteLine()方法?

我目前正在使用TopShelf和Console应用程序创建Windows服务。当我将代码作为控制台应用程序运行时,我使用几个Console.WriteLine()来输出结果。一旦代码完成其预定任务,我将控制台应用程序安装为Windows服务。 即使Windows服务无法写入控制台,保留Con...

34得票8回答
Windows服务中的Serilog无法写入日志文件

我在一个TopShelf服务中使用Serilog记录日志并输出到控制台和一个滚动的文件。当我在控制台中运行服务时,我的消息被写入日志文件,但是当我安装并运行服务时,没有任何日志记录。请问我需要进行特殊的配置吗?该文件被写入到二进制文件夹下的“.\logs\log-{date}.txt”中。

24得票1回答
如何使用未被TopShelf识别的命令行参数?

我希望在通过TopShelf将控制台应用程序安装并启动为Windows服务时,能够传递一些自定义参数。 当我使用以下命令: MyService install start /fooBar: Test 控制台应用程序失败: [失败] 命令行发现未知命令选项: DEFINE: fo...

22得票2回答
HostFactory.Run和HostFactory.New有什么区别?

我在项目中需要使用Topshelf,并有一个简单的问题。在使用HostFactory.Run时一切都运行良好,但是当我读到函数名为HostFactory.New时,我认为使用这个函数更为合理。该函数在此链接中使用:http://docs.topshelf-project.com/en/late...

20得票6回答
如何捕获异常并停止Topshelf服务?

我有一个置于顶层的 Windows 服务,我想进行一些检查(例如,检查 XML 文件是否存在),如果检查失败,则需要停止 Windows 服务。 因此,我尝试在 Start() 方法中进行检查,然后引发异常:public void Start() { if (!File.Exists...

16得票1回答
Topshelf启用的Windows服务无法调试

使用 Visual Studio 2015。创建了一个 Windows 服务项目。我正在尝试使用 Topshelf,但似乎无法调试。 输出调试 / 窗口显示如下: Topshelf v3.3.154.0,.NET Framework v4.0.30319.42000 Topshelf.Ho...

15得票1回答
Serilog与Topshelf集成无法正常工作

我正在尝试使用Topshelf和Serilog(分别是Serilog.Extras.Topshelf包)为我的Windows服务设置简单的日志记录配置。HostLogger.UseLogger(new SerilogHostLoggerConfigurator(new LoggerConfig...

15得票3回答
如何检测Topshelf是否在控制台模式下运行

我正在使用Topshelf结合FluentSchedule来创建一个Windows服务。 然而,我想要能够试运行应用程序,仅启动,而不执行设置计时器等的FluentSchedule代码。 在从命令行运行exe文件(即不使用'install'命令)时,是否有一种方式可以从TopShelf检查...

15得票2回答
在同一台机器上安装多个相同服务的TopShelf

我正在尝试使用TopShelf创建Windows服务。当只有一个服务实例时,一切正常。但是,当我将整个服务文件夹复制到另一个位置,然后在该位置运行安装程序时,它就会一直停留在“启动”状态。 我根据配置文件中的值分配服务名称、描述和显示名称,因此不存在命名冲突。