应用程序仅在重新编译后从配置文件中获取更改

时间:2015-01-21 17:49:02

标签: c# asp.net

我正在使用.Net应用程序使用System.Net.Mail发送电子邮件。我的服务文件中的方法如下:

    private void EmailRecords()
    {
        string toField = ConfigurationManager.AppSettings["toName"];
        if (!string.IsNullOrEmpty(toField))
        {
            List<ClientCarrierResponse> responseRecords = ClientCarrierDao.GetAllEmailRecords(Connection, File.RequestPkid, File.CarrierPkid);
            MailMessage message = new MailMessage();
            message.From = new MailAddress(ConfigurationManager.AppSettings["fromName"]);
            message.To.Add(new MailAddress(toField));
            message.Subject = GetMessageSubject(File);
            message.Body = GetMessageBody(responseRecords);
            message.IsBodyHtml = true;


            SmtpClient smtpClient = new SmtpClient();
            smtpClient.Send(message);

        }
    }

然后App.config文件具有适当的参数:

<configuration>
 <!-- Other config settings -->

<!-- Configuration for specifying SMTP host for sending e-mails-->
 <system.net>
<mailSettings>
  <smtp>
    <network host="mail.exampleSMTP.com" port="25" defaultCredentials="true" />
  </smtp>
</mailSettings>
 </system.net>
 <appSettings>
   <add key="toName" value="example@email.com" />
   <add key="fromName" value="source@email.com" />
 </appSettings>

我注意到如果我将应用程序配置文件中的网络主机地址更改为不正确的地址,除非我重新编译代码,否则它不会失败。 (除了我在修复地址后重新编译代码之后,它也没有成功发送邮件,这与之后切换回来一样)

我尝试通过Visual Studio更改它,并手动更改app.config和appName.exe.config文件。

我错误的是它没有动态读取参数?

0 个答案:

没有答案