【问题标题】:Window service generates exception while reading 'ConfigurationManager.AppSettings["FilePath"].ToString()'窗口服务在读取 'ConfigurationManager.AppSettings["FilePath"].ToString()' 时生成异常
【发布时间】:2014-08-24 13:07:47
【问题描述】:

我正在制作 Windows 服务。 它包含一个 App.config 文件如下:

 <?xml version="1.0" encoding="utf-8" ?>
<configuration>
  <appSettings>
    <add key="SQLConnectionStr" value="Data Source=192.168.1.116;Initial Catalog=Conezone;User Id=sa;Password=saadmin@123;"/>
    <add key="FilePath" value="D:\Autoparts Guru\LINES2\"/>
  </appSettings>
</configuration>

为了在服务代码中获取 FilePath 值,我正在编写

ConfigurationManager.AppSettings["FilePath"].ToString()

但它会产生 NullReferenceException。

希望我能尽快得到答案。

【问题讨论】:

  • 您是否尝试将 App.config 重命名为 web.config?我不确定 web 应用程序中默认情况下是否正确处理了 app.config。
  • 您是否有权访问 SQLConnectionStr?
  • @Anton OP 正在谈论 Windows 服务。
  • 您制作的 exe 本身是否注册为服务,或者您是否通过服务运行您的 exe?
  • @CodeCaster 对,我的错。也许这篇文章可以提供帮助:stackoverflow.com/questions/439334/…

标签: c#


【解决方案1】:

此代码可能会对您有所帮助:

App.config:

<?xml version="1.0" encoding="utf-8" ?>
<configuration>
  <startup>
    <supportedRuntime version="v4.0" sku=".NETFramework,Version=v4.5" />
  </startup>
  <appSettings>
    <add key="SQLConnectionStr" value="Data Source=000.000.000.000;Initial Catalog=mydb;User Id=sa;Password=sa;"/>
    <add key="FilePath" value="myfilepath"/>
  </appSettings>
</configuration>

命名空间

using System.Configuration;

代码:

string filepath = string.Empty;
filepath = ConfigurationManager.AppSettings["FilePath"];

【讨论】:

  • 解释你认为 OP 犯了什么错误以及你是如何纠正它的。如果 ConfigurationManager.AppSettings["FilePath"].ToString() 引发 NullReferenceException,则无法从 appSettings 读取 "FilePath"。您的配置和代码在那里没有显示任何更改。
  • 标签会在创建 windows 服务时自动添加..你可能会错过
  • 该部分对ConfigurationManager.AppSettings 没有任何影响。请不要鼓励巫毒教/货物崇拜。
  • 嘿,已经解决了。我刚刚创建了一项新服务并粘贴了旧服务程序中的所有代码,它可以成功运行。
猜你喜欢
  • 2012-08-03
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2020-03-20
  • 1970-01-01
  • 2012-09-20
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多