AWS .NET SDK SimpleEmail SendEmail возвращает ошибку «Не удалось загрузить тип» - PullRequest
0 голосов
/ 08 февраля 2019

Я разрабатываю приложение с помощью AWS SimpleEmail.Я получаю сообщение об ошибке ниже, когда пытаюсь протестировать функцию SendEmail.

Не удалось загрузить тип 'Amazon.Runtime.Internal.InvokeOptions' из сборки 'AWSSDK.Core, Version = 3.3.0.0,Культура = нейтральная, PublicKeyToken = 885c28607f98e604 '.

У меня установлены AWSSDK.Core v3.3.31.7 и AWSSDK.SimpleEmail v3.3.7.30.

var credentials = new BasicAWSCredentials("key", "secret");

var client = new Amazon.SimpleEmail.AmazonSimpleEmailServiceClient(credentials, Amazon.RegionEndpoint.EUWest1);

var sesResponse = client.SendEmail(new SendEmailRequest
{
    Destination = new Destination
    {
        BccAddresses = new List<string>
        {

        },
        ToAddresses = new List<string> {
            "user@cuchuma.net",
            "user2@cuchuma.net"
        }
    },
    Message = new Message
    {
        Body = new Body
        {
            Html = new Content
            {
                Charset = "UTF-8",
                Data = "This message body contains HTML formatting. It can, for example, contain links like this one: <a class=\"ulink\" href = \"http://docs.aws.amazon.com/ses/latest/DeveloperGuide\" target = \"_blank\"> Amazon SES Developer Guide </a>."
            },
            Text = new Content
            {
                Charset = "UTF-8",
                Data = "This is the message body in text format."
            }
        },
        Subject = new Content
        {
            Charset = "UTF-8",
            Data = "Test email"
        }
    },
    ReplyToAddresses = new List<string>
    {

    },
    ReturnPath = "",
    ReturnPathArn = "",
    Source = "no-reply@cuchuma.net",
    SourceArn = ""
});

string messageId = sesResponse.MessageId;

1 Ответ

0 голосов
/ 09 февраля 2019

Класс, который он не может загрузить, был только добавлен 2 месяца назад .Поэтому я подозреваю, что у вас более старая версия AWSSDK.Core, чем вы заявили (v3.3.31.7).

Теперь я не уверен, как это происходит, но я видел случаи в прошломгде Nuget напутал, а ручная запись в файл проекта приводит к загрузке неверной библиотеки DLL.

Откройте файл проекта в блокноте и найдите ссылки на SDK.Они должны выглядеть следующим образом:

<Reference Include="AWSSDK.Core, Version=3.3.0.0, Culture=neutral, PublicKeyToken=885c28607f98e604, processorArchitecture=MSIL">
      <HintPath>..\packages\AWSSDK.Core.3.3.31.7\lib\net45\AWSSDK.Core.dll</HintPath>
</Reference>
<Reference Include="AWSSDK.SimpleEmail, Version=3.3.0.0, Culture=neutral, PublicKeyToken=885c28607f98e604, processorArchitecture=MSIL">
      <HintPath>..\packages\AWSSDK.SimpleEmail.3.3.7.30\lib\net45\AWSSDK.SimpleEmail.dll</HintPath>
</Reference>

Убедитесь, что имена пакетов действительно AWSSDK.Core.3.3.31.7 и AWSSDK.SimpleEmail.3.3.7.30.

Также убедитесь, чтодругих случайных записей AWSSDK.Core больше нет.

Наконец ... Еще одна проблема, с которой вы можете столкнуться, если вы не укажете их, не включайте следующие строки с пустой строкой.Это приведет к ошибке неверного адреса электронной почты:

ReturnPath = "",
ReturnPathArn = "",
SourceArn = ""
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...