0

我正在开发一个 MVC 应用程序,并且在网站的特定部分我需要发送通知电子邮件(我猜可能最多 10 封)。所以我想我会将电子邮件保存为 web.config 文件中的列表,然后遍历列表以发送电子邮件。

我首先厌倦了创建自定义部分并添加我需要的数据(在主 web.config 文件中),如下所示(参考):

我的代码:

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()试图从“主”web.config 文件中获取一个部分。我不知道是否有可能通过代码访问保存在 views 文件夹中的 web.config 文件。

4

1 回答 1

0

据我所知,您无法从控制器访问 Views 文件夹中的 web.config,它旨在用于降级 Views 文件夹范围。

无论如何,您收到的错误表明您正在定义一个重复的部分,因此请尝试在根 web.config 中的现有部分之后添加您的自定义部分,例如:

<configuration>
  <configSections>
    <!-- YOUR SECTION -->
    <section name="AdminEmails" type="System.Configuration.NameValueFileSectionHandler,System, Version=1.0.3300.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" />
    <!-- EXISTING SECTIONS -->
    <sectionGroup name="system.web.extensions" type="System.Web.Configuration.SystemWebExtensionsSectionGroup, System.Web.Extensions, Version=3.5.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35">
    <sectionGroup name="scripting" type="System.Web.Configuration.ScriptingSectionGroup, System.Web.Extensions, Version=3.5.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35">
      <sectionGroup name="webServices" type="System.Web.Configuration.ScriptingWebServicesSectionGroup, System.Web.Extensions, Version=3.5.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35"></sectionGroup>
    </sectionGroup>
  </sectionGroup>
</configSections>
于 2013-09-11T10:48:00.810 回答