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

.net - 洋葱架构的 Windows 服务

我见过的所有洋葱架构示例都在 ASP.NET MVC 应用程序的上下文中。他们倾向于通过将 IoC 设置放在基础结构 DLL 中并使用一些魔法(HttpModule 或 WebActivator)使 IIS 在正确的时间执行该设置代码来避免 UI 和服务实现(基础结构)之间的直接引用。

就我而言,我正在开发一个 Windows (TopShelf) 服务,并且正在努力解决如何使服务控制项目与基础设施项目完全分离。没有像在 IIS Web 应用程序中那样挂钩的执行管道。

我能想到的最好的方法是让服务项目扫描 IoC 注册表/模块类的 DLL,但这似乎仍然不那么干净。

有任何想法吗?

0 投票
4 回答
4518 浏览

c# - 如何强制quartz.net 作业在完成后重新启动间隔

我有一个项目,我使用TopShelfTopShelf.Quartz

按照这个例子,我正在建立我的工作

即使前一个仍在运行,它也会每五秒触发一次我的工作。我真正想要实现的是开始工作,完成后等待五秒钟,然后重新开始。这是可能的还是我必须实现自己的逻辑(例如通过静态变量)。

0 投票
1 回答
804 浏览

asp.net-web-api - 将 WebApi 自托管为 TopShelf Windows 服务时如何设置 web.config 设置

我有一个使用 TopShelf 作为 Windows 服务运行的自托管 Web api。我有一个适用于 TopShelf 的 app.config,但没有适用于我的 web api 的 web.config。如果我向 app.config 添加 web.config 或添加设置(web 设置),我的 web api 都会忽略它们。

我需要设置以下内容:

但我不知道在哪里设置它。

0 投票
1 回答
815 浏览

quartz.net - 使用 AdoJobStore 时出现“作业存在”错误

“无法存储作业:无法存储作业:'QbBackupGroup.QbBackup',因为已存在具有此标识的作业。”

第一次在干净的数据库(SQLCE)上运行后,我随时都会得到这个。我搜索并找到了一些建议(即此处此处),但它们与在没有TopShelf 的情况下运行 Quartz.NET有关。

建议的代码基于标准 Quartz.NET 架构(例如变量和值),但 TopShelf 的 Quartz.NET 代码都是委托。似乎没有什么可以直接翻译。

我的代码如下。

然而......所有这一切......这可能并不重要,因为我的最终目标是能够在运行时添加/删除作业/触发器而无需重新启动服务。这种硬编码的设计甚至可能不适用,但我还没有弄清楚如何做运行时位。

如果我能克服这个问题,接下来就是运行时位。除非运行时位否定对此的需要。第 21 条军规。

请指教。

服务:

工作:

应用程序配置:

0 投票
0 回答
719 浏览

c# - 如何在 LAN 网络上配置 TopShelf 客户端和主机?

我为 .NET TopShelf 尝试了本教程:http://lourenco.co.za/blog/2013/08/wcf-windows-service-using-topshelf-and-servicemodelex/并且在本地主机上一切正常,但是当我运行时在 app.config 应用程序中具有主机 IP 的其他 PC 上的客户端应用程序在客户端应用程序中的 Program.cs 中返回异常:

错误消息说:“tcp 错误代码 10061 无法建立连接,因为目标机器主动拒绝了它”

我已经关闭了windows防火墙。如何使用 TopShelf 连接 LAN 网络中的两台计算机?

0 投票
1 回答
1182 浏览

servicestack - 在 Windows 服务中托管 ServiceStack 的正确方法是什么?

我没有仅使用 MQMessaging 的 HTTP 功能,因此不需要设置我的应用程序主机和侦听端口(此时)。我确实想要所有的管道,尽管默认情况下,即 IoC 等。

这可能吗?仅供参考,我现在正在使用 Topshelf 引导服务,它似乎工作正常,我只是不需要监听 HTTP 请求。

谢谢你,斯蒂芬

0 投票
7 回答
13464 浏览

windows-services - Windows-Service 中的 Serilog 未写入日志文件

我在 TopShelf 服务中使用 Serilog,记录到控制台和滚动文件。在控制台中运行服务时,我的消息被写入日志文件,但是当我安装服务并运行它时,不会发生日志记录。我需要配置什么特别的东西吗?该文件将写入“.\logs\log-{date}.txt”下的二进制文件夹。

最好的问候戈佩

0 投票
2 回答
398 浏览

f# - Topshelf、Owin selfhost、F# 和显式字段

我已经安装了 Topshelf.FSharp 包,这里有一个如何使用它的示例:

https://gist.github.com/haf/4252121

该示例的一部分定义了一个“Svc”(服务)类,如下所示:

使用 Owin selfhost,您可以调用各种静态重载之一IDisposable WebApp.Start(...)来启动 Web 服务器,然后将其处理以停止它。在C#中,如果要结合Topshelf和Owin,可以在调用Start()时将Start()的IDisposable结果存储在Svc类的私有本地字段中,然后在Stop()中对其调用Dispose() ) 方法。

在 F# 中,您可以使用“显式字段”( http://msdn.microsoft.com/en-us/library/dd469494.aspx )声明 IDisposable 类型的统一字段,但这似乎有些尴尬,有没有更好的方法?

0 投票
1 回答
833 浏览

windows-services - 从 Topshelf 访问 Windows 服务“启动参数”

我在我的 topshelf 程序中添加了命令行支持,如下所示:

这很好用。

当我将它作为服务安装时,我希望在已安装的服务“启动参数”中它可以达到相同的目的,但事实并非如此。

谁能告诉我如何从 TopShelf 访问“启动参数”?

我希望多次安装相同的服务(具有不同的实例名称),这些服务因启动参数而异,我也想用它来传递测试值。

我想只是简单地以编程方式访问这些标准服务可能会为我指明正确的方向。

谢谢。

0 投票
1 回答
461 浏览

.net - 无法使用 MSBuild 和 PSExec 安装 TopShelf 服务

复制完 bin 目录后,我尝试使用 MSBuild 和 psexec 将来自 TeamCity 构建服务器的 Topshelf 服务安装到我们的开发服务器上:

但是,无论我尝试使用哪种引号组合,我总是得到:

显然,这是一个 DNS 错误,但我看不出这是怎么回事,因为我提供的是本地路径而不是 UNC 路径。构建服务器帐户是目标服务器上的管理员,所以这应该可以吗?