У меня есть веб-приложение, вызывающее .Net Core API для создания PDF-документов. Я делаю кучу преобразования HTML в pdf, поэтому для завершения документа на 200 страниц требуется время. У меня он работает в моем локальном, но не в моем AppService. Сначала я получал: «В указанном приложении CGI возникла ошибка, и сервер прервал процесс». если бы я просмотрел более 100 страниц (небольшие наборы страниц работают).
Код, вызывающий мой api:
var httpClient = new HttpClient();
HttpContent content = new StringContent(JsonConvert.SerializeObject(pdfRecipeDto), Encoding.UTF8, "application/json");
httpClient.Timeout = System.TimeSpan.FromMinutes(30);
var pdfFileUrl = httpClient.PostAsync("http://yada-yada.azurewebsites.net/api/pdf/Generate", content)
.GetAwaiter()
.GetResult()
.Content.ReadAsStringAsync().Result; // yes i know this is gross
Я нашел этот пост и другие, которые сказали simular. попробовал первый ответ, но после ручного изменения моего web.config в Kudu (bc, я не знаю, как установить его в моем проекте)
<?xml version="1.0" encoding="utf-8"?>
<configuration>
<system.webServer>
<handlers>
<add name="aspNetCore" path="*" verb="*" modules="AspNetCoreModule" resourceType="Unspecified"/>
</handlers>
<aspNetCore requestTimeout="00:20:00" processPath="%LAUNCHER_PATH%" arguments="%LAUNCHER_ARGS%" stdoutLogEnabled="false" stdoutLogFile=".\logs\stdout" forwardWindowsAuthToken="false"/>
</system.webServer>
</configuration>
requestTimeout = "00:20:00" является важной частью.
Но я получаю «500 - время запроса истекло. Веб-сервер не ответил в течение указанного времени».
я также пробовал добавить .UseKestrel(...)
к моему program.cs
public static IWebHost BuildWebHost(string[] args) =>
WebHost.CreateDefaultBuilder(args)
.UseApplicationInsights()
.UseStartup<Startup>()
.UseKestrel(o =>
{
o.Limits.KeepAliveTimeout = TimeSpan.FromMinutes(30);
})
.Build();;
Но это, похоже, ничего не дало.
async
/await
? - person maccettura   schedule 24.07.2018IIS
в качестве обратного прокси? Если да, проверьте здесь, чтобы настроить время ожидания запросаIIS
. - person pfx   schedule 24.07.2018