.NET Core的服务检测

时间:2017-05-03 11:13:09

标签: .net service .net-core

请您为.NET Core建议一种方法,该方法能够在运行时检测代码是否在服务中执行?

我有.NET Framework的工作代码,但我认为无法移植它,因为它基于.NET Core 1.1中不可用的属性。

1 个答案:

答案 0 :(得分:1)

.NET Core中的公共托管API无法直接实现这一点。 Environment.UserInteractive默认为固定值,并检查测试stdout如何连接可以产生意外结果以及各种情况(例如带有& stdout连接的子进程)。

在我的sample implementation服务托管API中,当可执行文件作为Windows服务安装时,我最终要求服务注册添加命令行参数(--run-as-service)(在此应用程序中,已调用与--register-service)。很多非.NET应用程序都以这种方式工作,包括docker。