我在Windows服务的Main()函数中有以下代码:
if (!Environment.UserInteractive)
{
ServiceBase.Run(new Listener());
}
else
{
try
{
var listener = new Listener();
listener.StartListener();
Console.WriteLine("Press any key to stop...");
Console.ReadKey(true);
}
catch (Exception ex)
{
}
}
因此,如果我在VS中运行它,它将作为控制台应用程序运行(如果有所不同,请在2019年使用)。
这是侦听器的构造函数:
public Listener()
{
kernel = new StandardKernel();
kernel.Load(Assembly.GetExecutingAssembly());
Logger = kernel.Get<INLogLogger>();
InitializeComponent();
}
private INLogLogger Logger { get; }
当我将其作为控制台应用程序运行时,可以逐步执行它,并使Logger正常运行,但是当我使用PowerShell脚本将其作为Windows Service启动并附加到进程中时,我将跳过{{1} }行,它会自动失败。我的意思是静默失败是我的VS调试只是停止而没有提示我或没有显示错误。
我可以肯定我已经为我的INLogLogger设置了绑定设置,因为它是从另一个Windows Service复制和粘贴的,我们没有遇到这个问题。
我可能会缺少什么?有什么要看的吗?