Benutzen Sie ReadyToRun oder AOT-Kompilierung
.NET ReadyToRun (R2R) ist eine Form der Ahead-Of-Time (AOT) Compilation.
Die Aktivierung der ReadyToRun-Kompilierung während der Bereitstellung könnte den Manipulationsschutz verletzen und zu Ausnahmen wie den folgenden führen:
Exception: Unhandled exception. IronSoftware.Exceptions.LicensingException: IronPdf, Version=2024.2.0.2, Culture=neutral, PublicKeyToken=94e1c31412563c75 assembly is not authentic. Please try to reinstall the nuget package
at IronPdf.PdfDocument.uswvws(Boolean vhfwdf)
at IronPdf.PdfDocument.get_BinaryData()
at IronPdf.PdfDocument.SaveAs(String FileName, Boolean SaveAsRevision)
at Program.<Main>(String[] args) in C:\csharppro\aottest\aottest\Program.cs:line 5
Grund
Laut Microsoft-Dokumentation wird das SDK die mit der Anwendung verteilten Assemblys vorkompilieren. Bei selbstenthaltenen Anwendungen wird dieser Satz von Assemblys das Framework umfassen. Es ist wichtig zu beachten, dass C++/CLI-Binärdateien nicht für die ReadyToRun-Kompilierung geeignet sind.
Lösung
Um spezifische Assemblies von der ReadyToRun-Verarbeitung auszuschließen, verwenden Sie die <PublishReadyToRunExclude>-Liste in Ihrer Projektdatei. Zum Beispiel, um die IronPdf.dll-Assembly auszuschließen:
<ItemGroup>
<PublishReadyToRunExclude Include="IronPdf.dll" />
</ItemGroup>
<ItemGroup>
<PublishReadyToRunExclude Include="IronPdf.dll" />
</ItemGroup>
Dieser XML-Ausschnitt sollte Ihrer Projektdatei (.csproj) hinzugefügt werden, um zu verhindern, dass die angegebenen Assemblies mit ReadyToRun vorkompiliert werden, wodurch potenzielle Lizenz- oder Manipulationsprobleme vermieden werden.
System.Environment.FailFast bei erstem IronPDF-Aufruf
Bei einigen Windows-Bereitstellungen stürzt IronPDF den Prozess unmittelbar bei dem ersten IronPDF-Aufruf ab, ohne dass Anwendungsprotokollausgaben vorhanden sind. Das Windows-Ereignisprotokoll verzeichnet einen Eintrag ähnlich zu:
The application requested process termination through System.Environment.FailFast.
Message: Stack: at System.Environment.FailFast(System.String)
at <Module>..cctor()
at Program.<Main>$(System.String[])
Dies ist ein anderer Fehler als die oben genannte Lizenzierungsausnahme. Der Absturz tritt während der statischen Initialisierung auf, bevor normales Logging verfügbar ist, sodass keine IronPDF-Protokollzeilen erscheinen, bevor der Prozess terminiert.
Dieses Muster wurde in ASP.NET Core-Anwendungen bestätigt, die in IIS auf Windows Server mit PublishReadyToRun aktiviert gehostet werden. Es wurde reproduziert auf:
- IronPDF 2026.4.1
- .NET 10
- IIS (
w3wp.exe) on Windows Server 2025 Datacenter - AWS EC2
win-x64Veröffentlichungsziel
Lösung
Behalten Sie <PublishReadyToRun>true</PublishReadyToRun> für die Anwendung bei und schließen Sie nur IronPdf.dll aus:
<ItemGroup>
<PublishReadyToRunExclude Include="IronPdf.dll" />
</ItemGroup>
<ItemGroup>
<PublishReadyToRunExclude Include="IronPdf.dll" />
</ItemGroup>
Ein vollständiges .csproj-Beispiel:
<PropertyGroup>
<TargetFramework>net10.0</TargetFramework>
<Nullable>enable</Nullable>
<ImplicitUsings>enable</ImplicitUsings>
<PublishReadyToRun>true</PublishReadyToRun>
</PropertyGroup>
<ItemGroup>
<PackageReference Include="IronPdf" Version="2026.4.1" />
</ItemGroup>
<ItemGroup>
<PublishReadyToRunExclude Include="IronPdf.dll" />
</ItemGroup>
<PropertyGroup>
<TargetFramework>net10.0</TargetFramework>
<Nullable>enable</Nullable>
<ImplicitUsings>enable</ImplicitUsings>
<PublishReadyToRun>true</PublishReadyToRun>
</PropertyGroup>
<ItemGroup>
<PackageReference Include="IronPdf" Version="2026.4.1" />
</ItemGroup>
<ItemGroup>
<PublishReadyToRunExclude Include="IronPdf.dll" />
</ItemGroup>
Nach der Aktualisierung der .csproj das Programm neu veröffentlichen, erneut bereitstellen und die IIS-Site neu starten oder den Anwendungspool recyceln.

