У меня странное поведение в приложении .NET Core 2.2.
При попытке сделать HTTP-запрос (через HttpClient или RestSharp), пока запрашиваемый сайт размещенна отличном сервере от того, где находится мое вызывающее приложение, я получаю ответ 200, как я и ожидал, и это здорово.
Однако, как только я пытаюсь нажатьсайт на том же сервере (и я пробовал это с тем же самым сайтом, размещенным на обоих серверах), я получаю 401 Несанкционированный.
Для справки, сайт, который я запрашиваю, является ASP.NET WebAPI на .Net Framework, и он использует Windows Auth.
Я пробовал это в .Net Framework 4.6.2 и .Net Core 3.0, и оба они работают нормально, и не демонстрируют эту проблему -- кажется, что это влияет на 2.2 для меня.
Я знаю, что есть «Проблема проверки петли» , но если бы это было так, я бы ожидал .Net Framework и .NetCore 3.0 столкнется с той же проблемой.
Я такжеo Я знаю о Эта проблема GitHub , которая, кажется, была решена в 2.2.
Для справки приведен пример кода, демонстрирующий проблему с HttpClient (одни и те же коды используются для всехверсии .Net)
static async Task Main(string[] args)
{
await MakeRequest();
}
public async static Task MakeRequest()
{
Console.WriteLine("Enter URL:");
var url = Console.ReadLine();
var uri = new Uri(url);
try
{
var client = new HttpClient(new HttpClientHandler { UseDefaultCredentials = true });
var res = await client.GetAsync(uri);
res.EnsureSuccessStatusCode();
var content = await res.Content.ReadAsStringAsync();
Console.WriteLine(res.StatusCode);
Console.WriteLine(content);
}
catch (Exception e)
{
Console.WriteLine($"Error: {e}");
}
finally
{
await MakeRequest();
}
}
Есть идеи?
РЕДАКТИРОВАТЬ: SDK используется: 2.2.104
Время выполнения используется: 2.2.5