【发布时间】:2013-09-15 07:46:42
【问题描述】:
我正在开发一个 MVC 应用程序,并且在网站的特定部分我需要发送通知电子邮件(我猜可能最多 10 封)。所以我想我会将电子邮件保存为 web.config 文件中的列表,然后遍历列表以发送电子邮件。
我首先厌倦了创建一个自定义部分并添加我需要的数据(在主 web.config 文件中),就像这样 (Reference):
我的代码:
web.config 文件:
<configSections>
<section
name="AdminEmails"
type="System.Configuration.NameValueFileSectionHandler,System, Version=1.0.3300.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" />
</configSections>
<AdminEmails>
<add key="email1" value="test@test.com" />
<add key="email2" value="abc@abc.com" />
<add key="email3" value="email@email.com" />
<add key="email4" value="username@domain.com" />
</AdminEmails>
控制器中的代码:
NameValueCollection section =
(NameValueCollection)ConfigurationManager.GetSection("AdminEmails");
//... loop through emails in 'AdminEmails' section...
但随后我收到一条错误消息,指出不能重复 <configSection>,因为另一个 web.config 文件中已经存在 <configSection>。因此,我将数据添加到保存在 views 文件夹中的 web.config 文件中。该网站运行但section 变量为null。我想这是因为ConfigurationManager.GetSection() 试图从'main' web.config 文件中获取一个部分。我不知道是否有可能通过代码访问保存在views文件夹中的web.config文件。
【问题讨论】:
标签: asp.net-mvc web-config configurationmanager configsection