C# Windows服务,app.config中的appSettings出现异常行为

C# Windows服务,app.config中的appSettings出现异常行为,c#,windows,service,config,appsettings,C#,Windows,Service,Config,Appsettings,我正在从事一个项目,该项目有一个共享的核心组件,它利用了相应配置文件中的部分 这对于使用web.config的asp.net web部件非常有效 但是,有一个Windows服务使用相同的共享核心组件,它(出于各种原因)直接从内部访问配置数据(即嵌入调用ConfigurationManager.AppSettings[“key”]),我无法轻松重构 这不是问题,但我发现web服务似乎无法获取我添加到其app.config中的appSettings值。当我将其部署到dev服务器时,它当然会变成Ser

我正在从事一个项目,该项目有一个共享的核心组件,它利用了相应配置文件中的
部分

这对于使用web.config的asp.net web部件非常有效

但是,有一个Windows服务使用相同的共享核心组件,它(出于各种原因)直接从内部访问配置数据(即嵌入调用
ConfigurationManager.AppSettings[“key”]
),我无法轻松重构

这不是问题,但我发现web服务似乎无法获取我添加到其app.config中的appSettings值。当我将其部署到dev服务器时,它当然会变成ServiceName.exe.config,并且配置文件在其他方面运行正常(它还包含一些按预期工作的
类型安全设置)

由于我无法轻松更改共享组件,因此我不得不在服务的app.config文件中使用

我检查过的东西:结构似乎很好:

<?xml version="1.0" encoding="utf-8" ?>
<configuration>
    <configSections>
        <sectionGroup name="applicationSettings" type="System.Configuration.ApplicationSettingsGroup, System, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" >
            <section name="xxxxx.UploadManagerService.UploadManager" type="System.Configuration.ClientSettingsSection, System, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" requirePermission="false" />
        </sectionGroup>
    </configSections>
    <applicationSettings>
        <xxxxx.UploadManagerService.UploadManager>
            <setting name="NumberOfUploaderThreads" serializeAs="String">
                <value>2</value>
            </setting>
             :
        </xxxxx.UploadManagerService.UploadManager>
    </applicationSettings>

  <appSettings>
    <add key="keyname" value="value" />
     :
  </appSettings>

</configuration>

2.
:
:
(其中:表示“更多相同”:

服务运行正常,但核心组件中的方法尝试访问任何
值的情况除外

有没有办法让它在Windows服务中正常工作?我看不出为什么它不能正常工作,但它不能(当它试图访问任何值时抛出异常)

这里有一个类似的地方,它会掉下来:

return SendEmailViaAmazonSES(
          new List<string> { clientEmailAddress },
            ConfigurationManager.AppSettings["SalesEmail"],
            "Order Confirmation.",
            content);
返回SendEmailViaAmazons(
新列表{clientEmailAddress},
ConfigurationManager.AppSettings[“SalesEmail”],
“订单确认。”,
内容);
…幸运的是,它被困在一个try:catch中,因此除了那些
ConfigurationManager.AppSettings[“key”]
调用之外,没有什么会失败,我无法更改它们,否则会对已经使用此核心组件的其他系统造成重大影响

有什么想法吗

我检查过的其他事项:服务配置文件和服务exe位于同一文件夹中,dev config确实包含正确的值

编辑25/5

由于该服务只调用少数需要访问
值的方法,我只是通过将这些方法复制到服务本身并使用
中的值来进行欺骗。这并不理想,我仍然很想知道为什么这对Windows服务不起作用,但我不能等待,所以我不得不接受n同时做出“捏造”的务实决定。我可以在以后的某个时候再谈这个问题,或者(碰巧)把它忘得一干二净;-)

文件权限 查看运行Windows服务的用户是否具有对其.config文件的读取权限

系统内部过程监视器 使用并按您的服务名称进行筛选,以查看进程是否确实试图通过您期望的路径访问您的文件。

文件权限 查看运行Windows服务的用户是否具有对其.config文件的读取权限

系统内部过程监视器
使用并按您的服务名称进行筛选,以查看进程是否真的试图通过您期望的路径访问您的文件。

似乎没有问题-毕竟,我可以访问这些值。我已检查以确保也只有一个配置文件。最奇怪的是。您确定异常(在不可修改的组件中捕获)是关于
ConfigurationManager.AppSettings
的,而不是其他参数吗?看起来没问题-毕竟,我可以访问这些值。我已检查以确保也只有一个配置文件。最奇怪的是。您确定异常(在不可修改组件中捕获)与
ConfigurationManager.AppSettings有关,而与其他参数无关吗?