C # Опубликовать запросы не работает - PullRequest
0 голосов
/ 03 сентября 2018

У меня есть программа, которая делает запрос Post. Этот проект работал отлично, но со старыми версиями .NETCORE (1.1) я обновил все, включая фреймворк, до 2.1. Код не изменился, как никогда, ошибки не возникало, и казалось, что изменение в порядке.

Теперь мой почтовый запрос терпит неудачу (я прикреплю только один, но у меня есть около 4 почтовых запросов, каждый из них терпит неудачу по той же причине)

РЕДАКТИРОВАТЬ: Я только что проверил мои запросы Get, выдают ту же ошибку ..

Это мой код:

using (var client = new HttpClient())
{
    Field fld = new Field()
    {
        ...
   };
    ForJSON bodyFormat = new ForJSON()
    {
        ...
    };
    string output = JsonConvert.SerializeObject(bodyFormat);
    StringContent sc = new StringContent(output, Encoding.UTF8, "application/json");
    try
    {
        client.DefaultRequestHeaders.Authorization = new AuthenticationHeaderValue("Basic",
                                                                                            Convert.ToBase64String(
                                                                                            Encoding.ASCII.GetBytes(
                                                                                                                                       string.Format("{0}:{1}", "XX", "YY"))));
        response = await client.PostAsync("https:...", sc); // It fails here

Сообщение об ошибке:

попытка не удалась, потому что подключенная сторона не ответила должным образом через некоторое время, или не удалось установить соединение, потому что подключенный хост не ответил

Я пытался погуглить эту ошибку, но каждый пост, кажется, не имеет отношения ко мне ... Они говорят о брандмауэрах и портах разрешений, но почему это работает в одном проекте, а в другом - нет?

Если я попробую через Почтальон / мою резервную копию проекта с версией 1.1, то это сработает.

Почему это происходит? Что сломалось? Может быть, мне нужно добавить атрибут времени ожидания?

1 Ответ

0 голосов
/ 04 сентября 2018

попытка не удалась, потому что подключенная сторона не ответила должным образом через некоторое время, или не удалось установить соединение, потому что подключенный хост не смог ответить

Эта ошибка вызвана изменениями между ядром 1.1 и ядром 2.1, которые HttpClientHandler изменяются с WinHttpHandler на SocketsHttpHandler.

В качестве обходного пути вы можете попытаться настроить процесс для использования более старого HttpClientHandler

AppContext.SetSwitch("System.Net.Http.UseSocketsHttpHandler", false);
using (var client = new HttpClient())

Ссылка: Производительность сети .

Отслеживание ошибок: .NET Core 2.1 SocketsHttpHandler аутентификация прокси с использованием аутентификации Windows не работает # 30166

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