0

我正在研究忘记密码功能。在我的web.config文件中,我完成了邮件设置:

<system.net>
    <mailSettings>
      <smtp from="email">
        <network host="host" port="25" userName="" password="=" enableSsl="true" />
      </smtp>
    </mailSettings>
</system.net>

在我的SendAsync方法中,我试图从以下位置读取设置web.config

SmtpClient client = new SmtpClient();
return client.SendMailAsync(ConfigurationManager.AppSettings["SupportEmailAddr"],
                                    message.Destination,
                                    message.Subject,
                                    message.Body);

我不知道这是什么:AppSettings["SupportEmailAddr"]

我从这里拿了这个。

它给了我以下例外:

值不能为空。参数名称:从

4

1 回答 1

1

在您的 web.config 文件中,您有一个名为: 的部分<appSettings>

这也是ConfigurationManager.AppSettings所指的。

["SupportEmailAddr"]正在查看一个名为 的特定设置SupportEmailAddr

在您的 web.config 中,它看起来像这样:

<appSettings>
    <add key="SupportEmailAddr" value="someone@example.com" />
</appSettings>

您收到 value cannot be null 消息,因为您的 web.config 中没有上述设置。

因此,要修复错误消息,请找到您的<appSettings>并添加:

<add key="SupportEmailAddr" value="someone@example.com" />

或者,如果您的 AppSettings 中已有当前值,则只需更改您在 C# 代码中查找的键。

ConfigurationManager.AppSettings["CorrectAppSettingKey"]

注意:如果您打算使用任何 web.config 继承功能,您应该WebConfiguratonManger.AppSettings代替ConfigurationManager.AppSettings. 在这里查看两者之间的区别:WebConfigurationManager 和 ConfigurationManager 有什么区别?

于 2017-12-01T11:47:04.447 回答