У меня странная ошибка, которую я не могу воспроизвести на своем компьютере.
Вот полный код, который я использую:
public async Task LoadHeaderAndFooter()
{
//ignore any SSL errors
ServicePointManager.ServerCertificateValidationCallback = delegate { return true; };
var baseAddress = new Uri(Request.Url.GetComponents(UriComponents.Scheme | UriComponents.Host, UriFormat.Unescaped));
var cookieContainer = new CookieContainer();
using (var handler = new HttpClientHandler { CookieContainer = cookieContainer })
using (var client = new HttpClient(handler) { BaseAddress = baseAddress })
{
var oCookies = Request.Cookies;
for (var j = 0; j < oCookies.Count; j++)
{
var oCookie = oCookies.Get(j);
if (oCookie == null) continue;
var oC = new Cookie
{
Domain = baseAddress.Host,
Name = oCookie.Name,
Path = oCookie.Path,
Secure = oCookie.Secure,
Value = oCookie.Value
};
cookieContainer.Add(oC);
}
Header.Text = await client.GetStringAsync("/minside/loyalityadmin/header");
Footer.Text = await client.GetStringAsync("/minside/loyalityadmin/footer");
}
}
Что происходит, когда запрос запускается, а затем ожидает тайм-аут (30 секунд по умолчанию), исключение httpclient - это «задача отменена». ТОГДА актуальный запрос срабатывает на сервере.
Теперь этот код запускается в файле .ascx.cs. Заголовок / является MVC-контроллером с представлением .cshtml. Оба работают на одном сервере.
Как мне заставить это работать?