Uwp httpclient getasync ожидает навсегда в зависимости от компьютераC#

Место общения программистов C#
Ответить Пред. темаСлед. тема
Anonymous
 Uwp httpclient getasync ожидает навсегда в зависимости от компьютера

Сообщение Anonymous »

Почему этот экземпляр Windows.web.http.httpclient работает на одном компьютере, а не на другом? Большинство, по -видимому, указывают, что есть потенциальный тупик, и предлагают использовать ConfigureaWait (false) в качестве решения. Это не решило мою проблему. Приложение развернуто «публикация» в IDE, а затем запускает установщик на целевой машине. У меня нет администратора в цели, и мне не было предложено предоставить какие-либо конкретные разрешения сети в приложение (что может быть всей проблемой?). < /P>
Вот какой-то код: < /p>

Код: Выделить всё

return Task.Factory.StartNew(async () => {
if(first_ping_attempt) {
Serilog.Log.Information("First ping attempt...");
}
HttpClient http = new HttpClient();
var cancellation = new CancellationTokenSource(10000);

HttpStringContent content = new HttpStringContent(FormPingPacket(device_ID, deviceName));
content.Headers.ContentType = JSONMediaType;
try {
var response = await http.PostAsync(PingPostURI, content).AsTask(cancellation.Token).ConfigureAwait(false);
if(!response.IsSuccessStatusCode) {
Serilog.Log.Error(String.Format("Ping POST response status code {0}\n  URL: {1}\n  Data:\n{2}", response.StatusCode, PingPostURI, content.ToString()));
}
if(first_ping_attempt) {
Serilog.Log.Information($"POST status: {response.StatusCode}");
}
} catch(TaskCanceledException) {
Serilog.Log.Error("Ping POST Timeout");
} catch(Exception e) {
Serilog.Log.Logger.Error(e, $"SendPing: Exception from http.PostAsync: {e.GetType()}: {e.Message}\n  URL: {PingPostURI}");
}
content = new HttpStringContent(FormVersionPutPacket());
content.Headers.ContentType = JSONMediaType;
cancellation = new CancellationTokenSource(10000);
try {
var response = await http.PutAsync(DevicePutURI(device_ID), content).AsTask(cancellation.Token).ConfigureAwait(false);
// We don't actually care about the response code other than for debugging
if(!response.IsSuccessStatusCode) {
Serilog.Log.Error(String.Format("Ping PUT response status code {0}\n  URL: {1}", response.StatusCode, DevicePutURI(device_ID)));
}
if(first_ping_attempt) {
Serilog.Log.Information($"POST status: {response.StatusCode}");
}
} catch(TaskCanceledException) {
Serilog.Log.Error("Ping PUT Timeout");
} catch(Exception e) {
Serilog.Log.Logger.Error(e, $"SendPing: Exception from http.PutAsync: {e.GetType()}: {e.Message}\n  URL: {DevicePutURI(device_ID)}");
}
if(first_ping_attempt) {
Serilog.Log.Information("First manager ping complete.");
first_ping_attempt = false;
}
});
}
Timer UWP неоднократно вызывает этот метод один раз за секунду, отбрасывая возвращенную задачу с помощью _ = синтаксиса. Serilog регистрирует центральную раковину, и в этой раковине я вижу это: < /p>

Код: Выделить всё

172.18.0.141    6/12/2025 3:16:07 PM    First ping attempt...
172.18.0.141    6/12/2025 3:17:07 PM    First ping attempt...
172.18.0.141    6/12/2025 3:18:07 PM    First ping attempt...
172.18.0.141    6/12/2025 3:19:07 PM    First ping attempt...
172.18.0.141    6/12/2025 3:20:07 PM    First ping attempt...
172.18.0.141    6/12/2025 3:21:07 PM    First ping attempt...
172.18.0.141    6/12/2025 3:22:07 PM    First ping attempt...
172.18.0.141    6/12/2025 3:23:07 PM    First ping attempt...
172.18.0.141    6/12/2025 3:24:07 PM    First ping attempt...
172.18.0.141    6/12/2025 3:25:07 PM    First ping attempt...
172.18.0.141    6/12/2025 3:26:07 PM    First ping attempt...
172.18.0.141    6/12/2025 3:27:07 PM    First ping attempt...
Так что ожидание явно никогда не вернется, даже с токеном отмены, чтобы убить его через 10 секунд.


Подробнее здесь: https://stackoverflow.com/questions/796 ... n-computer
Реклама
Ответить Пред. темаСлед. тема

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

  • Похожие темы
    Ответы
    Просмотры
    Последнее сообщение
  • Вызов httpClient GetAsync завершается неудачно для Https с внутренней ошибкой OpenSSL: ошибка счетчика ссылок
    Anonymous » » в форуме Linux
    0 Ответы
    39 Просмотры
    Последнее сообщение Anonymous
  • HttpClient.GetAsync выдает слишком большой объект запроса 413
    Гость » » в форуме C#
    0 Ответы
    53 Просмотры
    Последнее сообщение Гость
  • Должен.ThrowAsync не перехватывать исключение из запроса HttpClient.GetAsync()
    Anonymous » » в форуме C#
    0 Ответы
    20 Просмотры
    Последнее сообщение Anonymous
  • HttpClient.GetAsync не работает для определенного URL-адреса
    Anonymous » » в форуме C#
    0 Ответы
    9 Просмотры
    Последнее сообщение Anonymous
  • Blazor HttpClient застрял в GetAsync
    Anonymous » » в форуме C#
    0 Ответы
    5 Просмотры
    Последнее сообщение Anonymous

Вернуться в «C#»