ASP.NET(dotnet 2)IIS7-未正确读取NameValueCollection数组

ASP.NET(dotnet 2)IIS7-未正确读取NameValueCollection数组,asp.net,.net,c#-2.0,Asp.net,.net,C# 2.0,在web.config中有一个项目数组-只有2个 通常,它会读取自动池回收中的所有元素(似乎每天都有) 每隔一段时间,数组不会读取所有元素 我将添加另一个键,以便检查项目的数量,但我不太确定出现问题时如何处理。为了修复它,我们再次回收应用程序池,这将重新读取它,并通常使其正确 通过以下方式从web.config读取阵列: NameValueCollection nvcDbKeys = nvcDbKeys = NameValueCollection)ConfigurationManager.Get

在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方法作为静态启动器调用时,将调用此代码

我可以抛出一个异常,但如果计数器与数组条目数不匹配,我更愿意强制重新读取


我可以重新读取数组,还是需要通过代码强制应用程序池回收?

是的,您可以修改web.config文件并读取其值,而无需重新启动应用程序池。本节已经回答了详细的解释和实施


然而,就个人而言,我不会在web.config文件中编写任何在运行时必须更改的代码。如果更改web.config,在AppDomain重新启动之前,您所做的更改将无效。

如果需要,您将如何重新读取配置?手动读取,而不是通过NameValueCollection读取