Не скачиваются файлы, зависает поток
Либо зависает поток, либо пишет, что доступ к этому файлу заблокирован другим потоком. Хотя этого быть не может, т.к я использую using
Там проектик не большой, который я постоянно использую для разных парсингов сайта. Поэтому код может быть грязноватый.
Можете сами посмотреть, просто создав папку Work на диске C
https://github.com/gokor8/Portak/tree/master
Я знаю, что бесполезно закрывать поток в using но сделал на всякий случай, для проверки.
Ошибку выдает в классе HttpClient в методах Download.
Вот так это выглядит, когда он виснет

Класс в котором ошибка
public static class HttpClass
{
public static readonly string FirstPathLink;
static int NumberImage = 0;
public static readonly string SiteName;
public static CookieContainer CookieContainer;
private static HttpClientHandler handler;
public static HttpClient Client;
private static IConfiguration config;
public static IBrowsingContext Context;
static HttpClass()
{
CookieContainer = new CookieContainer();
handler = new HttpClientHandler() { CookieContainer = CookieContainer };
Client = new HttpClient(handler)
{
Timeout = TimeSpan.FromMinutes(3),
BaseAddress = new Uri("https://www.arrex.it/en/")
};
config = Configuration.Default;
Context = BrowsingContext.New(config); //Client.Timeout = TimeSpan.FromMinutes(30);
Client.DefaultRequestHeaders.Add("User-Agent", "Calam");
SiteName = Cutter.Tram(Client.BaseAddress.Host.Replace(".", "").Replace(",", "") + 1);
FirstPathLink = "https://" + Client.BaseAddress.Host + "/";
}
public static async Task<string> Download(string link)
{
string image = link;
string konec1 = image.Substring(image.LastIndexOf("."), image.Length - image.LastIndexOf("."));
if (!image.Contains("http"))
image = FirstPathLink + image;
Directory.CreateDirectory($@"C:\Work\{SiteName}\" + ExcelContainer.NA);
string gg = "";
var sourceStream = await Client.GetStreamAsync(new Uri(image));
using (var targetStream = File.Create($@"C:\Work\{SiteName}\" + ExcelContainer.NA + @"\" + NumberImage + konec1))
{
await sourceStream.CopyToAsync(targetStream);
}
gg = $"/upload/staff/upload/staff/{SiteName}/" + ExcelContainer.NA + "/" + NumberImage + konec1 + ";\r\n";
NumberImage++;
return gg;
}
public static async Task<string> Download(string link, string konec1)
{
string image = link;
if (!image.Contains("http"))
image = FirstPathLink + image;
Directory.CreateDirectory($@"C:\Work\{SiteName}\" + ExcelContainer.NA);
string gg = "";
var sourceStream = await Client.GetStreamAsync(new Uri(image));
using (var targetStream = File.Create($@"C:\Work\{SiteName}\" + ExcelContainer.NA + @"\" + NumberImage + konec1))
{
await sourceStream.CopyToAsync(targetStream);
}
gg = $"/upload/staff/upload/staff/{SiteName}/" + ExcelContainer.NA + "/" + NumberImage + konec1 + ";\r\n";
NumberImage++;
return gg;
}
}
