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

时间:2013-12-14 09:31:06

标签: c#

读取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和debug \文件夹包含app.config文件。

2 个答案:

答案 0 :(得分:2)

  

为什么会发生这种情况

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

  

我怎么处理它?<​​/ p>

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

答案 1 :(得分:2)

要解决此问题,您需要知道ConfigurationManager的princeple如何读取配置文件:

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

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

如果缺少此文件,请确保您的app.config属性生成操作不是嵌入资源。如果是,则app.config将嵌入到exe文件中,而配置管理器则无法读取。