2012-04-10 35 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