Cannot read data from app.config in Windows 10 & asp.net

本文关键字:amp net asp Windows in data read from app config Cannot | 更新日期: 2023-09-27 18:29:37

我正在开发一个asp.net应用程序,该应用程序将重要数据存储在app.config中。在Windows 10之前的所有Windows版本中,测试都会正确加载我想要的数据,但一旦我将系统升级到Windows 10,应用程序就无法通过相同的测试,无法获取数据。无论何时从app.config文件读取,如下面的代码所示,都会返回Null。''

var data = System.Configuration.ConfigurationManager.AppSettings["PathName"];

在Windows8中运行时,返回的值是我使用的有效字符串。当在Windows 10中运行时,尽管文件和以前一样存在,但仍会返回null。一旦以后在路径3中使用了该值,就会触发一个异常,并出现下面所示的错误。Path3来自一个Null值被传递到的函数。

threw exception: System.ArgumentNullException: Value cannot be null. Parameter name: path3

我尝试过更改用户对文件、文件夹等的权限,但似乎没有任何更改。我还更改了用户帐户控制设置,但运气不佳。我使用的是Visual Studios 2013 Professional,并且总是在管理模式下运行它。

我在网上看到的一切都没有起到多大作用,几乎重申了我已经尝试过的大部分步骤。任何见解都将不胜感激。

app.config的内容(Key="PathName")

<?xml version="1.0"?>
<configuration>
 <configSections>
 </configSections>
 <startup><supportedRuntime version="v4.0" sku=".NETFramework,Version=v4.0"/></startup>
  <appSettings>
    <add key="PathName" value="DATA_VALUE_NEEDED" />
  </appSettings>
  <applicationSettings>
 </applicationSettings>
</configuration>

Cannot read data from app.config in Windows 10 & asp.net

所以,在尝试了很多解决方案后,我终于找到了问题的根源。我不太清楚为什么会发生这种事,但还是发生了这种事。

在windows8上,测试项目中的app.config文件直接从它的主项目加载。这意味着,如果您为测试创建一个单独的项目,它将链接到加载app.config文件时为其创建的原始项目。

在Windows10中,由于某些原因,情况似乎并非如此。由于某些原因,正在读取的app.config文件不是为其创建测试的项目的文件。这是某种自动生成的默认值,尽管在两个操作系统版本之间移植代码时没有更改任何设置或配置。

我可以通过将文件直接从主项目复制到它的测试项目中来解决这个问题。然后,通过两者之间的链接,当其中一个更改时,它们将保持更新。

我仍然不明白为什么会发生这种情况,并且找不到生成的app.config文件。调试后,我只是注意到加载的可用键值对不存在于整个项目存储库中的任何单个XML文件中。希望这能帮助其他有同样问题的人,因为我在网上看到了其他几篇关于人们遇到这个问题的报道。感谢大家的帮助!