Sanal Yollar ile Dosya Kayıt Hataları

This article was translated from English: Does it need improvement?
Translated
View the article in English

ASP.NET uygulamalarında, PdfDocument.SaveAs() bu şekilde bir hata ile başarısız olabilir:

IronPDF could not write to the file '~/PDFFiles/mydocument.pdf'. It may be open in a PDF viewer.

Mesaj bir kilitli dosyaya işaret eder, ancak gerçek sebep genellikle yoldur. IronPDF diske yazmak için tam nitelikli bir fiziksel yol gerektirir, oysa ~/PDFFiles/file.pdf gibi bir değer, dosya sisteminin çözemeyeceği bir ASP.NET sanal yoludur.

Sanal yolu fiziksel bir yola eşleyin

Sanal yolu kaydetmeden önce, ASP.NET Web Forms'da Server.MapPath() kullanarak veya başka yerlerde HostingEnvironment.MapPath() kullanarak dönüştürün:

string virtualPath = "~/PDFFiles/mydocument.pdf";
string physicalPath = Server.MapPath(virtualPath); // or HostingEnvironment.MapPath outside Web Forms
pdf.SaveAs(physicalPath);
string virtualPath = "~/PDFFiles/mydocument.pdf";
string physicalPath = Server.MapPath(virtualPath); // or HostingEnvironment.MapPath outside Web Forms
pdf.SaveAs(physicalPath);
Imports System.Web

Dim virtualPath As String = "~/PDFFiles/mydocument.pdf"
Dim physicalPath As String = Server.MapPath(virtualPath) ' or HostingEnvironment.MapPath outside Web Forms
pdf.SaveAs(physicalPath)
$vbLabelText   $csharpLabel

Minimal bir çalışma örneği:

var renderer = new ChromePdfRenderer();
PdfDocument pdf = renderer.RenderUrlAsPdf("https://example.com");
string physicalPath = Server.MapPath("~/App_Data/PDFFiles/output.pdf");
pdf.SaveAs(physicalPath);
var renderer = new ChromePdfRenderer();
PdfDocument pdf = renderer.RenderUrlAsPdf("https://example.com");
string physicalPath = Server.MapPath("~/App_Data/PDFFiles/output.pdf");
pdf.SaveAs(physicalPath);
Dim renderer As New ChromePdfRenderer()
Dim pdf As PdfDocument = renderer.RenderUrlAsPdf("https://example.com")
Dim physicalPath As String = Server.MapPath("~/App_Data/PDFFiles/output.pdf")
pdf.SaveAs(physicalPath)
$vbLabelText   $csharpLabel

Kayıt Etmeden Önce

  • Dizin mevcut: hedef klasörü oluşturun ve uygulamanın oraya yazma iznine sahip olduğundan emin olun.
  • Dosya açık değil: çıktının zaten Adobe Reader gibi bir görüntüleyicide açık olmadığından emin olun.
  • Kısıtlı lokasyonlar: Program Files gibi korumalı klasörlere yazarken yeterli izinlerle çalıştırın.
  • Yolu doğrulayın: gelişim sırasında çözünmüş fiziksel yolu kaydedin ve beklediğiniz yere işaret ettiğinden emin olun.

UyarıÜretimde sürücü harflerini sabit kodlamaktan kaçının; )çalışma sırasında yolları çözün, bu sayede uygulama farklı ortamlarda çalışır.

Curtis Chau
Teknik Yazar

Curtis Chau, Bilgisayar Bilimleri alanında Lisans Derecesine (Carleton Üniversitesi) sahip ve Node.js, TypeScript, JavaScript ve React konularında uzmanlaşmış ön uç geliştirmeyle ilgileniyor. Sezgisel ve estetik açıdan hoş kullanıcı arayüzleri oluşturma tutkunu, Curtis modern çerçevelerle çalışmayı ve iyi yapı...

Daha Fazla Oku
Başlamaya Hazır mısınız?
Nuget İndirmeler 20,296,129 | Sürüm: 2026.7 yeni yayınlandı
Still Scrolling Icon

Hâlâ Kaydırıyor Musunuz?

Hızlıca kanıt ister misiniz? PM > Install-Package IronPdf
bir örnek çalıştır HTML'nizi bir PDF'ye dönüştüğünü izleyin.