ASP.NET (dotnet 2) IIS7 - NameValueCollection 数组未正确读取
Posted
技术标签:
【中文标题】ASP.NET (dotnet 2) IIS7 - NameValueCollection 数组未正确读取【英文标题】:ASP.NET (dotnet 2) IIS7 - NameValueCollection array not being read correctly 【发布时间】:2017-03-09 01:28:32 【问题描述】:在 web.config 中有一个项目数组 - 只有 2 个
它通常会读取自动池回收中更正的所有元素(这似乎是每天)。
每隔一段时间,数组不会读取所有元素。
我将添加另一个密钥,以便检查项目的数量,但我不太确定在出现问题时该怎么做。为了修复它,我们再次回收应用程序池,这将重新读取它,并且通常会正确。
数组是通过以下方式从 web.config 中读取的:
NameValueCollection nvcDbKeys = nvcDbKeys = NameValueCollection)ConfigurationManager.GetSection("MyArray");
数组是一个简单的键值
<MyArray>
<add key="prod1" value="user1"/>
<add key="prod2" value="user2"/>
<add key="prod3" value="user3"/>
</MyArray>
我进入一个 for 循环来存储值。此代码在第一次作为静态启动器调用 Web 方法时被调用。
我可以抛出异常,但如果计数器与数组条目的数量不匹配,我更愿意强制重新读取。
我可以只重新读取数组,还是需要通过代码强制应用程序池回收?
【问题讨论】:
【参考方案1】:是的,您可以修改 web.config 文件并读取它的值,而无需重新启动应用程序池。这个question已经回答了详细的解释和实现。
但是,就我个人而言,我不会在 web.config 文件中编写任何必须在运行时更改的代码。如果您更改 web.config,您的更改将在 AppDomain 重新启动之前生效。
【讨论】:
如果需要,您将如何重读配置?手动阅读,而不是通过 NameValueCollection以上是关于ASP.NET (dotnet 2) IIS7 - NameValueCollection 数组未正确读取的主要内容,如果未能解决你的问题,请参考以下文章
ASP.NET MVC + IIS7 + FireFox:URL 中的斜杠
在 IIS 7.5 上运行 ASP.NET Core 时,日志在哪里?
如何使用 dotnet cli 命令以 VB.NET 语言创建 ASP.NET Core 项目?
在mac中找不到匹配命令“dotnet-aspnet-codegenerator”asp.net core 2.1项目的可执行文件