问题标签 [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.
c# - Topshelf 框架错误
我刚刚从另一家公司接手了一堆 C# 代码,但在第一次构建工作时遇到了很大的麻烦。问题似乎是一个名为“Topshelf”的框架使用的一些 Lambda 语法。如果这是基本知识,我很抱歉,但我对 Microsoft 编程相当陌生,不知道如何解决这个问题。
问题归结为一个静态类,处理应用程序中的所有服务。
这是关于如何配置的 Topshelf 文档:http: //docs.topshelf-project.com/en/latest/configuration/quickstart.html
这是实际配置的代码(其中一些,但应该提供图片):
但是当这样做时,Visual Studio 会抱怨每一行代码。错误包括:
我 100% 确定,这是 Visual Studio 方面的某种解释问题,因为代码是实时 atm。我只是无法在VS中构建它。
你们有谁知道我错过了什么,或者做错了什么?记住; 该代码正在工作并且可以使用atm。
先感谢您。
.net - Topshelf 超时问题
我们正在使用 Topshelf 来托管服务。在启动服务之前,我们正在调用数据库以加载大量数据。因此,在启动服务时,我们收到以下错误:
我们使用以下代码启动服务:
如果我尝试使用 Visual Studio 启动服务,服务运行良好。但是当服务通过 Topshelf 托管时,我得到了超时错误。
我也尝试过使用hostControl.RequestAdditionalTime(TimeSpan.FromSeconds(300))
,但即使添加了额外的超时时间,我也无法解决问题。请提供您的建议。
c# - 在 Topshelf 服务中重新启动自身
我正在使用 Topshelf 来托管 Windows 服务。我希望让托管服务调用以在某些事件时重新启动。我想知道如何实现这一目标?
谢谢,本
topshelf - Topshelf 安装程序要求我按两次 Enter - 为什么?
通过 cmd.exe 安装 af 服务时,安装程序需要与命令提示符交互。我必须按两次键才能继续。当我想自动安装时,这对我来说是个问题。
此时需要交互
此时需要再次交互
我该怎么做才能让安装程序继续?
windows-services - 除了易于调试控制台应用程序之外,还有其他选择 Topshelf 的原因吗?
我们有一堆 Windows 服务,我认为 TopShelf 可以将它们全部托管在一个进程中。Topshelf 支持这一点,但我了解到,从 3.0 版开始,Topshelf 将不再支持在单个容器中托管多个服务。
那么 Topshelf 与使用 Visual Studio C# 模板创建 Windows 服务的优势是什么?Topshelf 给了我一个可以用来调试的控制台应用程序,但是如果我从来没有这样的需求(我们所有的服务只有几行代码调用业务逻辑组件,并且组件都经过适当的单元测试),Topshelf 是否还有其他优势?
elmah - 如何使 Elmah 的 Topshelf 日志异常
Topshelf 是一个很棒的小库,用于包装 Windows 服务。我正在尝试找出是否可以将其配置为注销 elmah 的异常。据我所知,它有一个用于未处理异常的内部处理程序。
http://docs.topshelf-project.com/en/latest/configuration/logging.html
会不会是编写一个新的记录器并提交一个拉取请求?
windows-services - 服务安装失败,因为事件源已经存在
我正在尝试配置基于 Topshelf 的 Windows 服务以使用 Topshelf.Log4Net 和 log4net 记录到自定义事件日志。如果我在命令行模式下运行应用程序,这很好。当我尝试使用 安装服务时BillsTestService.exe install
,我得到:
我试过EventLog.DeleteEventSource("BillsTestService");
在安装之前在 LINQPad 中运行;成功,但后续服务安装仍然失败。
我的 log4net appender 配置是:
我究竟做错了什么?
目的是让多个服务将错误记录到相同的日志名称(具有不同的应用程序名称);日志将由操作创建。
wix - Wix 中的 CustomAction 未执行
所以我正在创建我的第一个 Wix 项目,我似乎在执行自定义操作时遇到了问题。我不确定它是否包含在 msi 中,我不太确定我做错了什么。以下是我的 Wix 文件:
最后一个片段包含我的自定义操作,我希望在所有文件都放入目录后在命令行上执行以下操作:
需要注意的一点是,exe 实际上来自上面定义的ComponentGroupRef 。不确定这是否是一个问题,但我想我会提到它。任何帮助,将不胜感激。
quartz.net - Scheduling multiple Quartz jobs in Topshelf
Reading the documentation for Topshelf integrations here: https://github.com/dtinteractive/Topshelf.Integrations
And it seems like it should be as simple as scheduling multiple quartz jobs within the HostFactory
but it looks like the second scheduled job is the only one that's running.
I'm not really sure how to proceed from here. But I need to schedule two jobs that run on different schedules. The first is supposed to be run daily while the second gets run hourly.
windows - Topshelf、NLog 和文件权限
我有一个使用 TopShelf 库的 Windows 服务应用程序,我在 cfn-init 期间使用您从 topshelf 获得的方便的命令行功能将它安装在 AWS 中。
这基本上将服务安装在注册表中,然后调用sc start
,但它非常有用,因为它检查服务名称是否与您期望的匹配,并且它允许您配置服务将运行的用户使用漂亮的流式 API。
如果服务配置为一般使用 NLog,安装程序代码还会将一些诊断日志写入 NLog。
问题是这样的:安装程序作为 AMI 启动的默认本地管理员帐户运行,并且 NLog 文件由该用户创建。当服务作为网络服务用户启动时,它没有写入 NLog 日志文件的权限。
如何让我的服务写入日志文件?我考虑过以编程方式设置权限,但它看起来很讨厌,我必须确定日志文件名,因为它是根据 ec2 实例 ID 动态生成的。此外,第一次创建日志文件的时间也不是很明显。我可能会采用的最简单的方法是拥有两个 NLog.config,并在刷新记录器后在安装结束时切换一个。但是因为在服务启动和安装程序退出之间存在一些时间重叠,我预计我会在这里丢失几行日志记录。
任何干净的建议将不胜感激!