【问题标题】:Writing to folder through Process - ASP.NET and Windows Server 2008 R2通过进程写入文件夹 - ASP.NET 和 Windows Server 2008 R2
【发布时间】:2012-08-22 05:18:05
【问题描述】:

我通过 wkhtmltopdf 从 HTML 页面生成 PDF 文件(使用 C# 中的 Process)。

在本地系统 (Windows 7) 上它可以工作,但在 Windows Server 2008 R2 上我有“System.IO.FileNotFoundException”。 Process (C#) 执行的 wkhtmltopdf 没有足够的权限来写入文件。

我测试了很多文件夹(例如:“APPDIR/Content/temp”),但我不知道该怎么做。

【问题讨论】:

    标签: c# asp.net windows permissions windows-server


    【解决方案1】:

    您的应用程序运行的进程必须具有足够的权限才能写入文件夹。

    您的网站(很可能通过 ASP.NET 标记判断)可以配置为在 IIS 管理控制台中以您希望的任何用户身份运行。

    默认情况下,应用程序池以 ApplicationPoolIdentity 运行,并授予访问权限,您将使用:IIS AppPool\ApplicationPoolName 帐户。

    您还可以将应用程序池更改为作为另一个帐户运行,并为该帐户配置文件夹权限。

    您必须在框中输入完整的帐户名称,因为搜索是 Active Directory 的一项功能,对于本地帐户无法正常工作(在“选择用户或组”对话框中)

    【讨论】:

    • 我在文件夹权限框中没有“IIS AppPool\***”帐户。
    • @Adrian 更新了我的答案。您必须将此用户添加到列表中。
    • 感谢您的回复。我通过 icacls c:\XYZ /grant "IIS APPPOOL\DefaultAppPool":(OI)(CI)(RX) 添加(也作为完全控制权限)。我使用了 cmd,因为在 GUI 中我找不到 IIS APPPOOL\DefaultAppPool。但它仍然不起作用。 wkhtmltopdf 无法将文件写入文件夹(我可以从 C# 写入,但来自 Process 的 wkhtmltopdf 不能)。有什么想法吗?
    • 我停止将文件保存到磁盘,并使用:stackoverflow.com/questions/2791981/…,但我的问题仍未解决。也许有一天需要将 PDF 保存到磁盘?
    • 这是 wkhtmltopdf 的问题。我重新安装了,它也能正常工作!我通过 icacls 授予访问权限,没关系。感谢您的帮助!
    猜你喜欢
    • 2014-04-10
    • 1970-01-01
    • 2012-04-19
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多