【问题标题】:How do I configure IIS or the web server to allow it to read and write files?如何配置 IIS 或 Web 服务器以允许它读取和写入文件?
【发布时间】:2010-08-18 19:07:29
【问题描述】:

我正在尝试向一个简单的 Web 服务添加功能,该服务允许我将信息记录到应用程序所在硬盘驱动器上的 XML 文件中。当我在应用程序的控制台版本中使用该功能时,数据会记录到:

bin\x86\Debug MySolution.MyProject\MessageLog\TestMessagess.xml

但是,当我尝试在 ASP.NET 应用程序中读取或写入 XML 文件时,我会收到带有以下消息的 System.UnauthorizedAccessException

访问路径“MessageLog”被拒绝。

我希望日志文件出现在应用程序目录的\bin 文件夹中,那么我需要更改 IIS 或服务器本身的哪些设置以允许我的应用程序读取和写入该文件夹?

我的机器:我正在使用带有 ASP.NET 4.0 的 Windows XP SP3

【问题讨论】:

    标签: .net asp.net iis file-io


    【解决方案1】:

    正如 Russ 所说,您需要向 IIS 使用的用户授予读/写权限。

    对于高达 6.0 的 IIS,身份名称为 NETWORK SERVICE

    对于 IIS 7.0,将根据每个应用程序池授予权限。标识模板是 IIS APPPOOL\%POOL-NAME%。因此,如果您的站点使用 MyApp 应用程序池运行,您应该授予对 IIS APPPOOL\MyApp 用户身份的读/写访问权限。这是默认行为。您还可以为应用程序池设置自定义标识(查看更多 here)。

    【讨论】:

      【解决方案2】:

      尝试给Network Service用户适当的权限

      【讨论】:

        【解决方案3】:

        这是服务器安全的功能,而不是 IIS。在 Windows 资源管理器中,浏览到文件夹或文件并设置安全性以允许运行 IIS 的用户具有访问权限。

        【讨论】:

        • 这是有道理的。我尝试在 \bin 文件夹中添加对 Internet 访客帐户ASP.NET 机器帐户 的完全控制,然后再添加应用程序的根文件夹。然而,这些似乎都没有奏效。我找错地方了吗?
        • 运行 IIS 的默认用户是“启动 IIS 进程帐户”。这是你应该设置的。请务必将 Internet 访客帐户访问权限重置回原来的状态。
        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2019-09-21
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多