ASP.NET生成.pdf文件,Save()上的UnauthorizedAccessException

时间:2012-04-10 09:04:56

标签: asp.net pdf permissions migradoc

我有一份工作清单,我给用户提供了以pdf文件形式获取工作描述的选项。我使用MigraDoc / PDFsharp生成pdf文件。 问题是,在我渲染pdf文档并希望将其保存在DevServer的某个地方后,我在PDFsharp PdfDocument.Save()方法中创建FileStream时出现UnauthorizedAccessException。 我从来没有真正使用Windows进行比玩游戏更先进的东西,我不知道为什么我会得到这个例外,因为我以管理员用户身份登录,我猜我的ASP.NET应用程序是使用Administrator运行的privilleges并且应该能够在文件系统的任何地方写入文件。

守则。

        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,所以这可能是一个非常简单的问题,但我真的不知道该怎么做以及该怎么做搜索。谢谢你的回答!

1 个答案:

答案 0 :(得分:0)

管理员帐户=! IIS用户。 IIS用户也需要具有写入权限! 在大多数机器上,它被称为“IIS_User”或“网络服务”。首先,您可以向每个用户授予写入权限。如果这对您有用,您就知道该怎么做了。 首先尝试将绝对路径设置为文件名,也可以是“C:\ inetpub \ wwwroot”之外的目录? 希望这有帮助!