问题标签 [topshelf]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
4 回答
15659 浏览

c# - Windows 服务使用 Topshelf 启动然后停止

我正在使用 Quartz.net,并且试图让 Quartz 服务器在 Windows 服务中启动。我创建了一个 Windows 服务项目并包含 Quartz.net 库。在我的服务课程中,我有:

我还创建了一个 Windows 服务安装程序,并使用以下命令在 Visual Studio 的命令提示符下成功安装了 Windows 服务:

installutil MyWindowsService.exe

当我在 Windows 服务列表中查看我的服务并尝试启动该服务时 - 我收到一个消息对话框:

这是我记录到事件查看器(log4net)的输出:

窗口事件

1

2

3

4

5

6

7

8

9

有谁知道如何在不引发此错误的情况下启动此服务?

提前致谢。

0 投票
2 回答
221 浏览

.net - 使用 TransactedInstaller - 我还需要使用回滚吗?

我已经使用 Topshelf 3 年了,但仅限于简单的用例。我开始了一项新工作并建议使用 Topshelf,但它们覆盖了 Installer 类的 Rollback 方法。例如他们用它来调用“http delete urlacl ...”。

Topshelf 不公开 BeforeRollback 或 AfterRollback。我不反对提交拉取请求,但我想事先知道我是否需要回滚功能?也可能已经有一种方法可以使用 Topshelf 来处理这个问题?

0 投票
1 回答
561 浏览

c# - Windows 服务 - 注入回调?

我创建了一个 TCP 侦听器(网络套接字)实例作为 TopShelf Windows 服务。由于这个项目是一个带有 Main() 的服务而不是一个类库,我不确定如何创建一个允许我注入回调的构造函数。

具体来说,这个想法是当 TCP 侦听器收到消息时,它应该调用注入的回调方法。通常使用类库我会创建一个构造函数,将 ICallback 作为参数并相应地实例化。

我可以使用我的 TopShelf 服务执行构造函数注入吗?如果是这样,怎么做?

0 投票
2 回答
5537 浏览

c# - Topshelf 是否可以从一个控制台应用程序启动多个服务?

正如 TosShelf 所说:

"You can only have ONE service! As of 3.x Topshelf the base product no longer support hosting multiple services."

从 3.x 版本开始,我需要弄清楚如何集成新版本的 Topshelf。

问题: 是否可以使用 Topshelf 从一个控制台应用程序启动多个单独的服务?我怎样才能做到这一点?

0 投票
1 回答
802 浏览

c# - How TopShelf can capture arguments like 'install' or 'start' which is ignored by my Main method?

I was checking the TopShelf as a beginner.

I see that when you compile your console app you can install your service as:

and start:

What I do not understand is my console app does not do anything with those parameters.

Question:So how the TopShelf captures those 'install' or 'start' arguments?

0 投票
1 回答
16494 浏览

c# - 如何使用 TopShelf 无法识别的命令行参数?

当我通过 TopShelf 安装并启动它作为 Windows 服务时,我想将一些自定义参数传递给控制台应用程序。

当我使用:

控制台应用程序失败:

[失败] 命令行 发现未知的命令行选项:DEFINE: fooBar = Test

问题:

我怎样才能让我的论点被 TopShelf 识别,以便我可以使用它们的值?

0 投票
1 回答
484 浏览

c# - 部署后启动服务命令失败

我遇到了 Windows 服务的问题 - 部署后service_Start尝试失败(超时)。在第二次尝试时,它基本上成功了。我试过增加超时,但没有帮助。该服务没有依赖关系。

这是一个使用容器的c#+应用程序。实现的主类注册到 LifestyleType 。其他依赖项注册为.Topshelf (latest)Castle.Windsor (2.5.3)IMyServiceSingletontransient

该服务从 Rabbit 总线读取消息并将它们存储在 Couchbase 中。

配置代码如下所示:

我认为也许某些东西没有正确发布并导致启动失败,但是在尝试了一些更改之后,我真的不知道还有什么可以尝试的。

我知道这可能不足以解决这个问题 - 请让我知道什么样的信息会有所帮助。我真的很想知道这里发生了什么,所以如果你能指出我在调试这个方面的正确方向,我也会很感激。

0 投票
1 回答
638 浏览

topshelf - Topshelf 安装命令不返回

我正在使用 Topshelf v3.1 将我的控制台应用程序安装为 Windows 服务。我通过命令行安装我的控制台,例如: myconsole install

除了命令似乎永远不会完成之外,一切似乎都很好,我的意思是通常一旦执行命令,命令行控制台将返回您可以再次键入另一个命令的状态。不知何故,topshelf 命令在最后一点停止,所以我必须 Control + C 来终止该命令。

我的代码如下:

不知何故,如果我取消注释掉上面注释掉的块并注释掉 Main 方法中的最后两行。然后我再次运行该命令,它神奇地起作用。

PS: DummyService.Run 方法只是包装了注释代码块。本质上,它们是相同的。

有任何想法吗?

干杯,Ld

0 投票
3 回答
7928 浏览

.net - 如何在 TopShelf 中为服务指定命令行选项

我正在使用命令行参数将一些配置传递给 Windows 服务(它将是几个具有不同命令行的实例)。

我的代码如下所示:

当我安装服务时,我使用:

不幸的是,sqlserver命令行选项仅在安装阶段可用,并且不转到服务的参数。所以当我运行服务时,我没有得到我需要的参数值。

有没有办法修改TopShelf启动的服务的命令行?

0 投票
2 回答
6418 浏览

.net - HostFactory.Run 和 HostFactory.New 有什么区别

我需要在我所在的项目中使用 topshelf 并且我希望有一个简单的问题。当我使用时一切正常HostFactory.Run,但我认为HostFactory.New通过阅读函数上的名称来使用它似乎更合理,这里使用的是:http: //docs.topshelf-project.com/en/latest/配置/config_api.html

然而,在更简单的示例http://docs.topshelf-project.com/en/latest/configuration/quickstart.html中,HostFactory.Run使用了 insted 的HostFactory.New. 那么区别是什么呢?