【发布时间】:2017-01-23 04:58:44
【问题描述】:
在 Azure 中更改了我的身份和 EF 连接字符串后,我终于能够将应用程序部署到 Azure。
我首先设置了 Sendgrid,因为我的 mvc 应用程序会发送电子邮件确认以进行用户注册。它在本地运行得非常好,我很高兴它的无缝性。但是,当尝试与 Azure 集成时,它没有注册任何内容。
在本地,我将我的 API 密钥作为环境变量添加到本地计算机上,并且它有效。这是代码:
private async Task configSendGridasync(IdentityMessage message)
{
//For Local
string apiKey = Environment.GetEnvironmentVariable("my_sendgrid_key");
dynamic sg = new SendGridAPIClient(apiKey);
Email from = new Email("senders@email.com");
string subject = message.Subject;
Email to = new Email(message.Destination);
Content content = new Content("text/plain", message.Body);
Mail mail = new Mail(from, subject, to, content);
dynamic response = await sg.client.mail.send.post(requestBody: mail.Get());
}
在this doc 之后,我将它添加为 Azure 中的应用程序设置变量,正如应用程序所说的那样。 Sendgrid 给了我一个我保留的 api 密钥,我只是没有将它包含在此屏幕截图中:
从提供的文档链接中的代码和天蓝色设置来看,我在这里做错了什么?
【问题讨论】:
-
你确定是钥匙没读吗?你能制作一个打印出环境变量的测试页吗?也许还有其他东西坏了。
-
我实际上不确定就是这样。我会尝试做一个新的产品构建并显示 api 密钥.. 因为它绝对可以在本地工作。
-
好的,刚刚确认它没有拿到我的钥匙。它在我的页面上显示在本地,但在 prod 中不显示。
-
其实不是这样的。我排队了一个新的构建,但这些变化并没有反映在 prod azure 环境中.....
-
最终能够对此进行测试,并且密钥正在生产页面上显示。
标签: c# asp.net-mvc azure azure-web-app-service sendgrid