gpt4 book ai didi

c# - 除非使用管理员帐户,否则 Windows 服务不会命中 OnStart

转载 作者:行者123 更新时间:2023-11-30 14:34:41 26 4
gpt4 key购买 nike

服务安装正确,但当尝试通过 net start 或从服务窗口启动它时,它根本没有启动,甚至没有到达 OnStart 处理程序.

如果我使用管理员帐户,该服务会启动并正常工作。这似乎表明服务中的某些内容需要管理员权限,但这纯粹是一种按需式服务,在请求之前不会执行任何操作。对于这种类型的服务,我认为它至少应该启动,然后在向其发出需要管理员权限的请求时失败?

调试是不可能的,因为我什至无法启动它,而且事件日志中除了表明服务已停止的信息日志外没有任何其他内容。服务中的代码太多,无法在此处全部添加,但入口点是相当标准的 Unity 样式服务:

partial class MyServiceHost : UnityServiceBase
{
private Bootstrapper _bootstrapper;

public MyServiceHost()
{
InitializeComponent();
}

protected override void OnStart( string[] args )
{
TextWriter tw = new StreamWriter( "ServiceTestLog.txt" );
tw.Write( "Date: " + DateTime.Now + "\n" );

try
{
base.OnStart( args );

_bootstrapper = new Bootstrapper( UnityContainer );
_bootstrapper.Run();
}
catch ( Exception ex )
{
tw.Write( ex.ToString() );
}

tw.Close();
}

protected override void OnStop()
{
_bootstrapper.Teardown();
base.OnStop();
}
}

出于商业原因,我不能只让用户帐户使用管理员权限,所以如果您能就如何解决此问题提出任何建议,我将不胜感激。

最佳答案

写入“ServiceTestLog.txt”可能需要本地管理员权限。

关于c# - 除非使用管理员帐户,否则 Windows 服务不会命中 OnStart,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13594267/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com