如何在启动Windows服务时读取Windows服务配置
本文关键字:服务 Windows 读取 配置 启动 | 更新日期: 2023-09-27 17:49:41
我无法从Windows服务的配置文件(MyService.exe.config
)中读取appSettings
。请注意,服务已成功安装。
[PermissionSetAttribute(SecurityAction.LinkDemand, Name = "FullTrust")]
public class MyService : ServiceBase
{
public MyService()
{
InitializeComponent();
ServiceName = ConfigurationManager.AppSettings.Get("ServiceName");
}
private void InitializeComponent()
{
try
{
AutoLog = true;
CanStop = true;
}
catch (Exception e)
{
// Log error
}
}
static void Main()
{
MyService myService = new MyService ();
Run(myService);
}
protected override void OnStart(string[] args)
{
// Code to do necessary things on start
}
}
事件查看器中的异常为System.Configuration.ConfigurationErrorsException
哪个是读取Windows服务配置的正确位置? ConfigurationManager.AppSettings
总是返回null
。
该异常表明您的配置文件有问题。仔细检查一下。在异常或它的内部异常中应该有更多的信息,这将给你一个更精确的错误指示。
您可以尝试使用Settings
代替,并通过Properties.Settings
访问。
查看此链接了解更多信息
Windows服务将托管在svchost.exe
中。因此,exe名称将不同,因此它将无法加载由。net创建的配置。你可以
- 试着放一个
svchost.exe.config
,看看是否。net加载配置 - 使用
ConfigurationManager.OpenExeConfiguration
打开指定的配置文件并读取值