Asp.net core ASP.NET核心:可以查询是作为Windows服务还是作为控制台应用程序运行?

Asp.net core ASP.NET核心:可以查询是作为Windows服务还是作为控制台应用程序运行?,asp.net-core,Asp.net Core,使用UseWindowsService作为Windows服务托管asp.net core,是否有可靠的方法可以了解应用程序是作为Windows服务还是作为控制台应用程序运行?我这样问是因为在一种情况下(控制台)GetCurrentDirectory返回正确的当前文件夹,而在另一种情况下(Windows服务),它总是返回“x:\Windows\system32”文件夹。看到这个了吗 使用System.IO.Path.GetDirectoryName(Application.ExecutablePa

使用UseWindowsService作为Windows服务托管asp.net core,是否有可靠的方法可以了解应用程序是作为Windows服务还是作为控制台应用程序运行?我这样问是因为在一种情况下(控制台)GetCurrentDirectory返回正确的当前文件夹,而在另一种情况下(Windows服务),它总是返回“x:\Windows\system32”文件夹。

看到这个了吗

使用System.IO.Path.GetDirectoryName(Application.ExecutablePath)可以更可靠地获取Windows服务或控制台应用程序的当前文件夹。

请参见此


使用System.IO.Path.GetDirectoryName(Application.ExecutablePath)可以更可靠地获取Windows服务或控制台应用程序的当前文件夹。

我自己找到了答案,
WindowsServiceHelpers.IsWindowsService()
返回的正是我需要的,有关windows服务或控制台应用程序是否正在运行的信息。

我自己找到了答案,
WindowsServiceHelpers.IsWindowsService()
准确返回我需要的信息,即有关windows服务或控制台应用程序是否在运行的信息