对象引用未设置为windows服务中对象的实例

本文关键字:对象 实例 服务 windows 设置 对象引用 | 更新日期: 2024-09-21 14:09:29

读取app.config值:

string configFile = 
    System.Configuration.ConfigurationManager.AppSettings["connStr"].ToString(); 

配置文件:

<appSettings>
    <add key="connStr" value="Data Source=Dolphin-PC;
                              Initial Catalog=jsptpd_SYS;
                              Persist Security Info=True;User ID=sa;
                              Password=ccir"/>
</appSettings>

获取错误:

Object reference not set to an instance of an object

''program and debug''文件夹包含app.config文件。

对象引用未设置为windows服务中对象的实例

为什么会发生这种情况

因为,System.Configuration.ConfigurationManager.AppSettings["connStr"]为空

我该怎么办?

一个更有效的问题。这里的代码没有任何错误。您发现它为null的主要原因可能是您运行应用程序的目录中不存在app.config。这可能是因为app.config是某个库的一部分,并且没有复制到输出目录。您需要确保app.config在您的主项目中,或者显式地将其复制到目录(从中运行应用程序)中。

要解决这个问题,您需要了解ConfigurationManager的Principle如何读取配置文件:

http://msdn.microsoft.com/en-us/library/system.configuration.configurationmanager.aspx

要解决这个问题,您可以确保您的bin/目录生成yourprogram.exe.config文件,以便ConfigurationManager可以读取。

如果此文件丢失,您可以确保app.config属性生成操作不是嵌入的资源。如果为true,则app.config将嵌入到exe文件,并且configurationmanager无法读取。