Puppeteer не может запустить браузер на сервере WindowsC#

Место общения программистов C#
Ответить
Anonymous
 Puppeteer не может запустить браузер на сервере Windows

Сообщение Anonymous »

Я разрабатываю конечную точку для API для создания PDF-файла на основе предоставленного HTML-кода с помощью PuppeteerSharp. Локально это работает прекрасно, но, к сожалению, не работает, когда API развернут в IIS на сервере.
Я получаю следующую ошибку:

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

2025-10-20 13:28:33.637 [ERR] (9) 72ba7b27-db83-4106-82be-15b1d9f335af: HTTP POST /GeneratePdfBytes responded 500 in 563.3725 ms PuppeteerSharp.ProcessException: Failed to launch browser!
at PuppeteerSharp.States.ProcessStartingState.StartCoreAsync(LauncherBase p) in /home/runner/work/puppeteer-sharp/puppeteer-sharp/lib/PuppeteerSharp/States/ProcessStartingState.cs:line 83
at PuppeteerSharp.States.ProcessStartingState.StartCoreAsync(LauncherBase p) in /home/runner/work/puppeteer-sharp/puppeteer-sharp/lib/PuppeteerSharp/States/ProcessStartingState.cs:line 89
at PuppeteerSharp.Launcher.LaunchAsync(LaunchOptions options) in /home/runner/work/puppeteer-sharp/puppeteer-sharp/lib/PuppeteerSharp/Launcher.cs:line 77
at PuppeteerSharp.Launcher.LaunchAsync(LaunchOptions options) in /home/runner/work/puppeteer-sharp/puppeteer-sharp/lib/PuppeteerSharp/Launcher.cs:line 110
...
at lambda_method5(Closure, Object)
at Microsoft.AspNetCore.Mvc.Infrastructure.ActionMethodExecutor.AwaitableObjectResultExecutor.Execute(ActionContext actionContext, IActionResultTypeMapper mapper, ObjectMethodExecutor executor, Object controller, Object[] arguments)
at Microsoft.AspNetCore.Mvc.Infrastructure.ControllerActionInvoker.g__Awaited|12_0(ControllerActionInvoker invoker, ValueTask`1 actionResultValueTask)
at Microsoft.AspNetCore.Mvc.Infrastructure.ControllerActionInvoker.g__Awaited|10_0(ControllerActionInvoker invoker, Task lastTask, State next, Scope scope, Object state, Boolean isCompleted)
at Microsoft.AspNetCore.Mvc.Infrastructure.ControllerActionInvoker.Rethrow(ActionExecutedContextSealed context)
at Microsoft.AspNetCore.Mvc.Infrastructure.ControllerActionInvoker.Next(State& next, Scope& scope, Object& state, Boolean& isCompleted)
at Microsoft.AspNetCore.Mvc.Infrastructure.ControllerActionInvoker.g__Awaited|13_0(ControllerActionInvoker invoker, Task lastTask, State next, Scope scope, Object state, Boolean isCompleted)
at Microsoft.AspNetCore.Mvc.Infrastructure.ResourceInvoker.g__Awaited|25_0(ResourceInvoker invoker, Task lastTask, State next, Scope scope, Object state, Boolean isCompleted)
at Microsoft.AspNetCore.Mvc.Infrastructure.ResourceInvoker.Rethrow(ResourceExecutedContextSealed context)
at Microsoft.AspNetCore.Mvc.Infrastructure.ResourceInvoker.Next(State& next, Scope& scope, Object& state, Boolean& isCompleted)
at Microsoft.AspNetCore.Mvc.Infrastructure.ResourceInvoker.g__Awaited|20_0(ResourceInvoker invoker, Task lastTask, State next, Scope scope, Object state, Boolean isCompleted)
at Microsoft.AspNetCore.Mvc.Infrastructure.ResourceInvoker.g__Awaited|17_0(ResourceInvoker invoker, Task task, IDisposable scope)
at Microsoft.AspNetCore.Mvc.Infrastructure.ResourceInvoker.g__Awaited|17_0(ResourceInvoker invoker, Task task, IDisposable scope)
at Microsoft.AspNetCore.Authorization.AuthorizationMiddleware.Invoke(HttpContext context)
...
at Serilog.AspNetCore.RequestLoggingMiddleware.Invoke(HttpContext httpContext)
Я запускаю ссылку браузера с помощью этого кода:

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

_browser = await Puppeteer.LaunchAsync(new LaunchOptions
{
Browser = SupportedBrowser.Chrome,
ExecutablePath = @"C:\Program Files\Google\Chrome\Application\chrome.exe",
Headless = true,
Args = ["--no-sandbox", "--disable-setuid-sandbox"]
});
Я несколько раз проверял URL-адрес Chrome и даже пробовал Firefox и Edge (с измененными браузером и ExecutablePath).
Я могу запустить все три браузера из окна командной строки без прав администратора, используя путь, который я указываю при вызове Puppeteer, но получаю одно и то же сообщение об ошибке для всех трех браузеров. Я убедился, что все они обновлены.
Прежде чем задать вопрос здесь, я провел онлайн-исследование, но ни одна проблема не нашла решения, которое применимо к моему случаю, поскольку большинство людей получали эту ошибку при развертывании на машинах с Linux, и их проблемы и решения были специфичны для Linux.
Я благодарен за любой вклад по этой проблеме.>

Подробнее здесь: https://stackoverflow.com/questions/797 ... ows-server
Ответить

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

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

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

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

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