#c# #asp.net #mailchimp #dotnet-httpclient #mailchimp-api-v3.0
#c# #asp.net #mailchimp #dotnet-httpclient #mailchimp-api-v3.0
Вопрос:
Я разрабатываю систему, которая продлевает подписку и отправляет подписчикам уведомления о действиях в их учетной записи. Я реализую Mailchimp для отправки электронных писем и уведомлений подписчикам. Мне нужно добавить списки в Mailchimp и восстановить его в системе. Я получаю сообщение об ошибке при получении списков из Mailchimp в систему. В нем говорится:
Запрос был прерван: не удалось создать защищенный канал SSL / TLS. Произошла ошибка при отправке запроса.
Вот код.
protected void btnLoadList_Click(object sender, EventArgs e)
{
try
{
var button = (Button)sender;
var gift = false;
var combo = cboMailChimpLists;
var text = txtChimpListNameID;
if (button != null)
{
gift = button.ID == "btnRefreshListGift";
if (gift)
{
combo = cboMailChimpListsGift;
text = txtChimpListNameIDGift;
}
}
var myList = new MailChimpList(txtChimpKey.Value);
var test = myList.GetAllListsAsync();
var testList = new List<KeyValuePair<string, MCLists>>();
test.Wait(1000);
string reset = null;
m_saveLists.Clear();
if (test.Status == TaskStatus.RanToCompletion)
{
combo.Items.Clear();
foreach (var list in test.Result.lists)
{
testList.Add(new KeyValuePair<string, MCLists>(list.name, list));
if (IsNullOrEmpty(text.Value)) continue;
if (text.Value == list.id)
reset = list.name;
}
}
int counter = 0;
testList = testList.OrderBy(kvp => kvp.Key).ToList();
foreach (var sort in testList)
{
combo.Items.Add(sort.Key);
m_saveLists.Add(counter.ToString(), sort.Value.id);
counter ;
}
if (!IsNullOrEmpty(reset))
combo.Text = reset;
ViewState["SavedList"] = m_saveLists;
if (combo.SelectedIndex >= 0)
{
DropDownList1_SelectedIndexChanged(gift ? cboMailChimpListsGift : cboMailChimpLists, null);
}
}
catch (AggregateException ex)
{
SiteToolKit.Tools.ExceptionHandler(ex, "btnLoadList_Click", lblError);
}
}
Списки ошибок выглядят следующим образом:
Проблема возникает в test.Wait()
методе. Я не могу отслеживать больше, чем это. Но это работает в некоторых случаях, т.Е. на некоторых клиентах. У меня более 100 клиентов, и у каждого клиента есть свои собственные продукты. Это работает для некоторых клиентов и загружает список должным образом, но в некоторых клиентах возникает ошибка.
Рабочие списки выглядят следующим образом:
Могу ли я что-нибудь изменить?
Ответ №1:
Попробуйте установить протокол безопасности:
ServicePointManager.SecurityProtocol = SecurityProtocolType.Tls12;
перед
test.Wait();