问题标签 [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.
topshelf - TopShelf 在同一台机器上安装多个相同的服务
我正在尝试使用 TopShelf 创建 Windows 服务。使用该服务的一个实例一切正常。但是,当我将整个服务文件夹复制到不同的位置,然后在该位置运行安装时,它只会挂在“启动”上。
我根据配置文件中的值分配服务名称、描述、显示名称,因此没有命名冲突。
.net - 分析使用 TopShelf 的应用程序
我正在使用TopShelf运行一个 .net 应用程序,其中一部分是处理数据并将其保存到 Sql Server 数据库中。
我发现这个过程很慢,所以我想研究分析应用程序,看看在方法调用等方面是否存在任何主要瓶颈,但是,由于 TopShelf 正在运行应用程序,所以我使用的任何分析工具都只是坐着在主程序中的 Run 方法上,并且不显示其余方法的任何结果。
有没有办法让分析工具继续分析超过 TopShelf 运行应用程序的点?
msbuild - TopShelf MSDeploy 安装退出代码出错
我正在尝试使用 CI 的 TopShelf 安装服务。但是,无论何时在安装过程中发生异常,TopShelf 都会回滚事务并继续构建过程,并返回 0x0 状态。
这意味着就 CI 服务器而言,部署是成功的。
我在 MSBuild 中使用的命令示例是:
我收到的输出是:
有什么想法可以使构建在异常上失败吗?
.net - 创建一个可以充当服务的应用程序(使用 topshelf)和一个交互式应用程序
以前,当我在 .NET 中创建 Windows 服务时,我创建了应用程序,以便它可以作为服务或交互式应用程序运行(它根据命令行参数的存在确定它应该如何运行 - 例如 --service .
我正在考虑使用 TopShelf,并想知道它是否具有此功能。我还没有找到任何东西,但想知道是否有人知道?
log4net - 我想使用 Topshelf 实例名称作为 log4net 日志文件名的一部分
使用 TopShelf 创建服务实例时,我希望能够访问服务实例名称(在作为服务安装期间可能已在命令行上设置;这意味着我无法直接访问它)能够将其用作 Log4Net 中日志文件名的属性。
在下面的示例代码中,我们设置了可用于在全局上下文中记录的各种属性。我也希望能够在这里设置服务实例名称;但似乎无法在主机初始化期间访问它。
关于如何在运行时使用 Topshelf 访问服务实例名称值的任何建议。
下面的示例是我们所有服务用来使用 Topshelf 启动服务的通用功能的一部分。
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 块覆盖并且我记录了异常,所以我不知道是什么导致了这个“意外结束”
谢谢
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 行的反序列化期间。
解决这个问题的任何线索都会有所帮助,因为我被这个错误难住了。
c# - 手动停止 TopShelf 中的服务
使用 TopShelf,如何手动停止服务?我查看了文档,发现要停止服务,您必须使用命令提示符,如下所示:
service.exe [服务名称] 停止
当我使用它时,我发现它只是重新启动服务而没有停止它。
c# - 场景背景——启动wcf服务
我正在使用 specflow 和 nunit 测试 WCF 服务方法;我的场景如下所示:
我不确定如何实施后台步骤;
服务器可以使用 Topshelf- 作为控制台/Windows 服务运行
ServiceInitializer
我应该只执行 .exe 服务文件,还是可以以某种方式使用我的?也许我可以使用 nUnit 的[SetUpFixture]
?是否有任何 Specflow 最佳实践?
c# - Topshelf vs sc.exe vs Windows 服务项目类型
如标题所示,我想问一下使用这些将我的代码托管在 Windows 服务上的可能性有什么区别。据我所知,这三个都允许我创建将作为服务安装的 exe。