PdfDataAsync timeout in IIS
yuxiang970813 opened this issue · 6 comments
Hi, my project's print function has been running smoothly for the past few weeks and no code updates have been made, but since May 27th it is suddenly not working properly. When the print button is pressed, PdfDataAsync gets stuck until it times out.
I have tried upgrading to the latest version (18.0.1) or downgrading to other versions of PuppeteerSharp to no avail, and I have noticed that PdfDataAsync works when debugging in Visual Studio, but gets stuck if publishing to IIS.
I also created a new project and published to another server and it still happens.
- PuppeteerSharp version: 17.0.0
- NET version: .NET Core 8.0.
Here is the code of the printing function:
BrowserFetcher browserFetcher = new();
await browserFetcher.DownloadAsync();
await using IBrowser browser = await Puppeteer.LaunchAsync(new LaunchOptions { Headless = true, });
await using IPage page = await browser.NewPageAsync();
await page.SetViewportAsync(new ViewPortOptions { Width = 794, Height = 1123 });
await page.GoToAsync(Security.DecodeBase64(url));
byte[] pdfStream = await page.PdfDataAsync();
return File(pdfStream, "application/pdf");
And here is the error message get from event viewer:
System.TimeoutException: Timeout of 180000 ms exceeded
at PuppeteerSharp.Helpers.TaskHelper.WithTimeout[T](Task`1 task, TimeSpan timeout, Func`2 exceptionFactory) in /home/runner/work/puppeteer-sharp/puppeteer-sharp/lib/PuppeteerSharp/Helpers/TaskHelper.cs:line 185
at PuppeteerSharp.Cdp.CdpCDPSession.SendAsync(String method, Object args, Boolean waitForCallback, CommandOptions options) in /home/runner/work/puppeteer-sharp/puppeteer-sharp/lib/PuppeteerSharp/Cdp/CdpCDPSession.cs:line 112
at PuppeteerSharp.CDPSession.SendAsync[T](String method, Object args, CommandOptions options) in /home/runner/work/puppeteer-sharp/puppeteer-sharp/lib/PuppeteerSharp/CDPSession.cs:line 44
at PuppeteerSharp.Cdp.CdpPage.PdfInternalAsync(String file, PdfOptions options) in /home/runner/work/puppeteer-sharp/puppeteer-sharp/lib/PuppeteerSharp/Cdp/CdpPage.cs:line 829
at PuppeteerSharp.Page.PdfAsync(String file, PdfOptions options) in /home/runner/work/puppeteer-sharp/puppeteer-sharp/lib/PuppeteerSharp/Page.cs:line 382
at ltis2023.Controllers.PrintingController.Pdf(String url, Boolean isPortrait)
Hi,
I had the same problem and I fixed it by moving to PuppeteerExtraSharp, which works out of the box in my case.
The base PuppeteerSharp package would need an extra package to work in IIS, but that package isn't compatible with the last version of it:
Hi, I had the same problem and I fixed it by moving to PuppeteerExtraSharp, which works out of the box in my case.
The base PuppeteerSharp package would need an extra package to work in IIS, but that package isn't compatible with the last version of it:
Thanks kjenova, the PuppeteerExtraSharp works for me! But I would like to know why puppeteer-sharp does not support this feature now?
Thank you for the report. I'm on vacation right now. I'll take a look at it on Monday!
Thanks @kjenova, I ran into the same issue.
But it only stopped working when I upgraded to Puppeteer 18, it worked fine in 17.
Hi, I had the same problem and I fixed it by moving to PuppeteerExtraSharp, which works out of the box in my case.
The base PuppeteerSharp package would need an extra package to work in IIS, but that package isn't compatible with the last version of it:
I bet that PuppeteerExtraSharp works because the last version is one year old, and it must be using an old Chrome version.
I would recommend using the Chromium browser till this issue is solved in Chrome for testing.