ReadyToRun veya Zamanında Ön Derleme (AOT) Kullanma
.NET ReadyToRun (R2R), zamanında ön planlanan (AOT) bir derleme biçimidir.
Dağıtım sırasında ReadyToRun derlemeyi etkinleştirmek, kurcalama korumasını ihlal edebilir ve aşağıdaki gibi istisnalara neden olabilir:
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
Neden
Microsoft belgelerine göre, SDK, uygulama ile dağıtılan bütünleştirilmiş kodları ön derleyecektir. Bağımsız uygulamalar için, bu montajlar seti çerçeveyi içerecek. C++/CLI ikili dosyalarının ReadyToRun derlemesi için uygun olmadığını belirtmek önemlidir.
Çözüm
HazırÇalıştır işlemesinden belirli derlemeleri hariç tutmak için proje dosyanızdaki <PublishReadyToRunExclude> listesini kullanın. Örneğin, IronPdf.dll derlemesini hariç tutmak için:
<ItemGroup>
<PublishReadyToRunExclude Include="IronPdf.dll" />
</ItemGroup>
<ItemGroup>
<PublishReadyToRunExclude Include="IronPdf.dll" />
</ItemGroup>
Bu XML parçacığı, belirtilen derlemelerin HazırÇalıştır ile önceden derlenmesini önlemek ve bu sayede potansiyel lisanslama veya kurcalama sorunlarının önüne geçmek için proje dosyanıza (.csproj) eklenmelidir.
Sist. Ortam.FailFast İlk IronPDF Çağrısında
Bazı Windows dağıtımlarında, IronPDF ilk IronPDF çağrısında uygulama seviyesinde günlük çıktısı olmadan işlemi anında çökertir. Windows Olay Günlüğü benzer bir giriş kaydeder:
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[])
Bu, yukarıdaki lisanslama istisnasından farklı bir başarısızlıktır. Çökme, normal loglama kullanılabilir hale gelmeden önce, statik başlatma sırasında gerçekleşir, bu nedenle işlem sonlanmadan önce IronPDF günlük satırları görünmez.
Bu desen, Windows Server üzerindeki IIS'de barındırılan ASP.NET Core uygulamalarında PublishReadyToRun etkinleştirildiğinde doğrulanmıştır. Yapıyabilir:
- IronPDF 2026.4.1
- .NET 10
- Windows Server 2025 Datacenter'deki IIS (
w3wp.exe) - AWS EC2
win-x64yayımlama hedefi
Çözüm
Uygulama için <PublishReadyToRun>true</PublishReadyToRun> saklayın ve yalnızca IronPdf.dll hariç tutun:
<ItemGroup>
<PublishReadyToRunExclude Include="IronPdf.dll" />
</ItemGroup>
<ItemGroup>
<PublishReadyToRunExclude Include="IronPdf.dll" />
</ItemGroup>
Tam bir .csproj örneği:
<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>
Güncellemeyi .csproj yaptıktan sonra, uygulamayı yeniden yayınlayın, CD BYU yapın ve IIS sitesini yeniden başlatın veya Uygulama Havuzunu geri dönüştürün.

