问题标签 [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 投票
2 回答
8144 浏览

topshelf - TopShelf 在同一台机器上安装多个相同的服务

我正在尝试使用 TopShelf 创建 Windows 服务。使用该服务的一个实例一切正常。但是,当我将整个服务文件夹复制到不同的位置,然后在该位置运行安装时,它只会挂在“启动”上。

我根据配置文件中的值分配服务名称、描述、显示名称,因此没有命名冲突。

0 投票
1 回答
383 浏览

.net - 分析使用 TopShelf 的应用程序

我正在使用TopShelf运行一个 .net 应用程序,其中一部分是处理数据并将其保存到 Sql Server 数据库中。

我发现这个过程很慢,所以我想研究分析应用程序,看看在方法调用等方面是否存在任何主要瓶颈,但是,由于 TopShelf 正在运行应用程序,所以我使用的任何分析工具都只是坐着在主程序中的 Run 方法上,并且不显示其余方法的任何结果。

有没有办法让分析工具继续分析超过 TopShelf 运行应用程序的点?

0 投票
1 回答
1458 浏览

msbuild - TopShelf MSDeploy 安装退出代码出错

我正在尝试使用 CI 的 TopShelf 安装服务。但是,无论何时在安装过程中发生异常,TopShelf 都会回滚事务并继续构建过程,并返回 0x0 状态。

这意味着就 CI 服务器而言,部署是成功的。

我在 MSBuild 中使用的命令示例是:

我收到的输出是:

有什么想法可以使构建在异常上失败吗?

0 投票
1 回答
414 浏览

.net - 创建一个可以充当服务的应用程序(使用 topshelf)和一个交互式应用程序

以前,当我在 .NET 中创建 Windows 服务时,我创建了应用程序,以便它可以作为服务或交互式应用程序运行(它根据命令行参数的存在确定它应该如何运行 - 例如 --service .

我正在考虑使用 TopShelf,并想知道它是否具有此功能。我还没有找到任何东西,但想知道是否有人知道?

0 投票
2 回答
1880 浏览

log4net - 我想使用 Topshelf 实例名称作为 log4net 日志文件名的一部分

使用 TopShelf 创建服务实例时,我希望能够访问服务实例名称(在作为服务安装期间可能已在命令行上设置;这意味着我无法直接访问它)能够将其用作 Log4Net 中日志文件名的属性。

在下面的示例代码中,我们设置了可用于在全局上下文中记录的各种属性。我也希望能够在这里设置服务实例名称;但似乎无法在主机初始化期间访问它。

关于如何在运行时使用 Topshelf 访问服务实例名称值的任何建议。

下面的示例是我们所有服务用来使用 Topshelf 启动服务的通用功能的一部分。

0 投票
0 回答
1418 浏览

c# - Topshelf 服务崩溃

我使用 Topshelf 来托管我的 WCF 客户端(在 Windows XP 上),它连接到 WCF 服务(Windows Server 2008)并在后台执行一些工作。

当我在控制台应用程序(在 TopShelf 中)中测试服务时,我对此没有任何问题,但可能是因为我不时重新启动应用程序。

现在我已经将它部署为 Windows 服务,它运行良好,但是我前几天发现这个服务没有启动,我检查了 EventLog 并发现了这个:

“RemoteDeskService 服务第三次意外结束。” 并且没有其他信息。

我使用 Topshelf 3.0.1 版本,也使用 Log4Net 来写日志。它正确地写入了所有日志,但是对于此事件没有任何内容,似乎没有人知道服务发生了什么事。

我在 WindowsHost 的 TopShelf 代码中发现他们有 AppDomain.Current.UnhandledException 的处理程序,它应该写入日志 - 但日志中没有任何内容。

您有什么想法可以在哪里查看以及如何解决问题?

我检查了我的代码 - 它被 try/catch 块覆盖并且我记录了异常,所以我不知道是什么导致了这个“意外结束”

谢谢

0 投票
1 回答
1597 浏览

c# - Quartz 中的奇怪错误:未找到 Quartz.XmlSerializers

我在 Quartz.net 中收到以下错误

显示名称为“Quartz.XmlSerializers”的程序集未能在 ID 为 1 的 AppDomain 的“LoadFrom”绑定上下文中加载。失败的原因是:System.IO.FileNotFoundException:无法加载文件或程序集“Quartz.XmlSerializers” , Version=2.0.1.100, Culture=neutral, PublicKeyToken=null' 或其依赖项之一。该系统找不到指定的文件。

这很奇怪,因为 Quartz.XmlSerializers 在我使用的任何代码中都不存在。它不在 Quartz 源代码、我的代码和我能说的最好的依赖项中。它仅在我调试项目时发生,但在我下载 Quartz 2.0.1 源代码并从那里运行服务器时不会发生。

我使用 topshelf 作为服务安装库。

它发生在 Quartz 源的 XMLSchedulingDataProcessor.cs 的第 226 行的反序列化期间。

解决这个问题的任何线索都会有所帮助,因为我被这个错误难住了。

0 投票
2 回答
2026 浏览

c# - 手动停止 TopShelf 中的服务

使用 TopShelf,如何手动停止服务?我查看了文档,发现要停止服务,您必须使用命令提示符,如下所示:

service.exe [服务名称] 停止

当我使用它时,我发现它只是重新启动服务而没有停止它。

0 投票
1 回答
809 浏览

c# - 场景背景——启动wcf服务

我正在使用 specflow 和 nunit 测试 WCF 服务方法;我的场景如下所示:

我不确定如何实施后台步骤;
服务器可以使用 Topshelf- 作为控制台/Windows 服务运行

ServiceInitializer我应该只执行 .exe 服务文件,还是可以以某种方式使用我的?也许我可以使用 nUnit 的[SetUpFixture]?是否有任何 Specflow 最佳实践?

0 投票
2 回答
4729 浏览

c# - Topshelf vs sc.exe vs Windows 服务项目类型

如标题所示,我想问一下使用这些将我的代码托管在 Windows 服务上的可能性有什么区别。据我所知,这三个都允许我创建将作为服务安装的 exe。