我有一个包含许多项目的解决方案.1使用Amazon SES发送电子邮件的业务服务项目。 1个连接到业务服务项目的ASP.net MVC 5应用程序。
解决方案中有一些MVC 5项目 - 它们都发送电子邮件。每个必须在Web配置中包含AWS设置 - 如下所示:
<add key="AWSProfileName" value="myprofile" />
<add key="AWSProfilesLocation" value="C:\AWS\mycredentials\creds.txt" />
<add key="AWSRegion" value="eu-west-1" />
这很好用。
然而,在.net Core MVC 2应用程序中,我不断收到此错误:
System.IO.FileNotFoundException:&#39;无法加载文件或程序集&#39; AWSSDK.SimpleEmail,Version = 3.3.0.0,Culture = neutral,PublicKeyToken = 885c .......&#39 ;。系统找不到指定的文件。&#39;
我认为这是因为它无法找到上述设置。由于.net核心应用程序没有web.config我认为它在appconfig.json中查找这些内容
我在appsettings.json中找到了ProfileName和Region的示例 - 但没有找到ProfilesLocation:
https://aws.amazon.com/blogs/developer/configuring-aws-sdk-with-net-core/
所以我试过这个
"AWS": {
"Profile": "myprofile",
"Region": "eu-west-1",
"ProfilesLocation": "C:\\AWS\\mycredentials\\creds.txt"
}
但我一直得到同样的错误。如何从这个.net核心mvc 2应用程序中获取AWS.SimpleEmail?
感谢。
答案 0 :(得分:1)
好的,对于新来者来说,这就是您获取AWS服务以使用appsettings.json的方式 在Startup.cs
services.AddDefaultAWSOptions(Configuration.GetAWSOptions());
services.AddAWSService<IAmazonSimpleEmailService>();
确保将AWS配置添加到应用设置
"AWS": { "Profile": "profileName", "Region": "us-east-1" }
最后,为了在您的AWS服务中使用上述配置,您必须将带有Dependency Injection的服务添加到您的类中并使用它 例如,使用EmailSender类中的SimpleEmailService发送电子邮件:
public class EmailSender : IEmailSender
{
IAmazonSimpleEmailService _SES;
public EmailSender(IAmazonSimpleEmailService SES)
{
_SES= SES;
}
然后在函数中调用它,不要使用
AmazonSimpleEmailServiceClient
但是使用服务
_SES.SendEmailAsync(sendRequest);