Napraw błędy połączenia Docker z IronPdfEngine na macOS ARM
Podczas łączenia aplikacji .NET z IronPdfEngine przez Docker na urządzeniu macOS ARM (Apple Silicon), aplikacja zgłasza wyjątek:
Unhandled exception. System.IO.FileNotFoundException: Error loading native library.
Not found in any of the possible locations
IronPdfConnectionType.Docker używa starszej implementacji gRPC, która nie obsługuje architektury ARM. Na macOS ARM (Apple Silicon) klient .NET nie może załadować wymaganego natywnego pliku binarnego gRPC, nawet gdy obraz Docker jest zmuszony do uruchomienia jako --platform linux/amd64. Platformy Windows i Linux x64 nie są dotknięte.
Rozwiązanie
Zamień IronPdfConnectionType.Docker na IronPdfConnectionType.RemoteServer w konfiguracji połączenia. RemoteServer używa nowszej implementacji gRPC, która jest zgodna z ARM:
using IronPdf;
var config = new IronPdfConnectionConfiguration
{
ConnectionType = IronPdfConnectionType.RemoteServer,
Host = "http://127.0.0.1",
Port = 33350
};
IronPdf.Installation.ConnectToIronPdfHost(config);
IronPdf.License.LicenseKey = Environment.GetEnvironmentVariable("IRONPDF_LICENSE_KEY");
var renderer = new ChromePdfRenderer();
var pdf = await renderer.RenderHtmlAsPdfAsync("<h1>Hello from IronPdfEngine</h1>");
pdf.SaveAs("output.pdf");
using IronPdf;
var config = new IronPdfConnectionConfiguration
{
ConnectionType = IronPdfConnectionType.RemoteServer,
Host = "http://127.0.0.1",
Port = 33350
};
IronPdf.Installation.ConnectToIronPdfHost(config);
IronPdf.License.LicenseKey = Environment.GetEnvironmentVariable("IRONPDF_LICENSE_KEY");
var renderer = new ChromePdfRenderer();
var pdf = await renderer.RenderHtmlAsPdfAsync("<h1>Hello from IronPdfEngine</h1>");
pdf.SaveAs("output.pdf");
Imports IronPdf
Dim config As New IronPdfConnectionConfiguration With {
.ConnectionType = IronPdfConnectionType.RemoteServer,
.Host = "http://127.0.0.1",
.Port = 33350
}
IronPdf.Installation.ConnectToIronPdfHost(config)
IronPdf.License.LicenseKey = Environment.GetEnvironmentVariable("IRONPDF_LICENSE_KEY")
Dim renderer As New ChromePdfRenderer()
Dim pdf = Await renderer.RenderHtmlAsPdfAsync("<h1>Hello from IronPdfEngine</h1>")
pdf.SaveAs("output.pdf")
Wymagania:
- Kontener Docker IronPdfEngine musi być uruchomiony i dostępny na określonym hoście i porcie przed wywołaniem
ConnectToIronPdfHost. - Użyj
http://, a niehttps://; Użyciehttps://bez ważnego certyfikatu SSL powoduje błędy uszkodzenia ramek w kanale gRPC.
Zobacz również: rozwiązywanie błędów inicjalizacji Vulkan/ANGLE w Docker oraz naprawa błędów połączenia gRPC w kontenerach Azure.

