2012-04-10 40 views
0

我有一個作業列表,我給用戶選擇以PDF文件的形式獲取作業描述。我使用MigraDoc/PDFsharp生成PDF文件。 問題是,在我渲染PDF文檔並想將其保存在DevServer的某處後,我在創建FilesharkPdfDocument.Save()方法時發生UnauthorizedAccessException。 我從來沒有真正用過任何比玩遊戲更先進的Windows,我不知道爲什麼我會得到這個異常,因爲我以管理員用戶身份登錄,我想我的ASP.NET應用程序正在用管理員權限運行,應該能夠在文件系統的任何地方寫入文件。ASP.NET生成.pdf文件,保存()上的UnauthorizedAccessException

該守則。

 GridViewRow jobRow = (GridViewRow)(sender as Control).Parent.Parent; 

     Document jobDocument = new Document(); 
     Section xyz = jobDocument.AddSection(); 
     xyz.AddParagraph("Wonderfull job"); 

     PdfDocumentRenderer pdfRenderer = new PdfDocumentRenderer(true); 
     pdfRenderer.Document = jobDocument; 
     pdfRenderer.RenderDocument(); 

     string filename = "Job_" + jobRow["3"] + ".pdf"; // Job_[title].pdf 
     pdfRenderer.PdfDocument.Save(filename); 

最後一行是導致異常的行。 有什麼建議嗎?我不是ASP.NET開發人員,而且我被迫爲我的學校項目使用ASP.NET,所以這可能是一個非常簡單的問題,但我真的不知道該做什麼以及要搜索什麼。謝謝回答!

回答

0

管理員帳戶=! IIS用戶。 IIS用戶也需要擁有寫入權限! 在大多數機器上,它被稱爲「IIS_User」或者「網絡服務」。首先,您可以向每個用戶授予寫入權限。如果這對你有效,你就知道該怎麼做。 首先嚐試將絕對路徑設置爲文件名,可能是「C:\ inetpub \ wwwroot」之外的目錄? 希望這有助於!

+0

我不是100%確定,但我不使用IIS。我使用Visual Studio 2010附帶的默認Web服務器(不確定它是否與IIS有任何關係)。我忘了提及我試圖在我的網站根目錄之外寫入文件,並且沒有任何問題。 – Viktor 2012-04-10 09:39:24

+0

然後將「everyone」的訪問權限授予您的應用程序目錄/到PDF應保存的目錄。 右鍵點擊文件夾 - >屬性 - >安全/權限 - >編輯 - >完全訪問所有人。 (也許翻譯是錯誤的) – jordi 2012-04-10 10:15:50

+0

它的工作,我覺得現在和白癡...... :) – Viktor 2012-04-10 12:31:56