【问题标题】:IIS7 Permission Denied - ASP File WriteIIS7 权限被拒绝 - ASP 文件写入
【发布时间】:2010-12-22 02:15:54
【问题描述】:

很遗憾,我没有这方面的大量信息。 我有一个客户将他们的站点从一个古老的系统迁移到 Windows 2008 Server 上的 IIS7。有关错误的信息如下:

错误: E:\wwwroot\sp\xxx\online_data.xls Microsoft VBScript 运行时错误“800a0046”

权限被拒绝

/xxx/oat/exceldata.asp,第 52 行

代码:

49 response.write(server.mappath("online_data.xls")) 
50   
51 set fso = createobject("scripting.filesystemobject") 
52 Set act = fso.CreateTextFile(server.mappath("online_data.xls"), true) 

目前唯一的建议是:

授予应用程序池 (DefaultAppPool / Classic AppPool)的 冒充身份读写 物理文件夹的权限 asp页面所在的位置

当我获得访问权限时会查看这个,但其他建议将不胜感激。

【问题讨论】:

  • 我认为该建议可行,另一个选项是检查默认应用程序池是否作为网络服务运行并授予网络服务访问该文件夹的权限
  • 感谢大家的回复。现场仍然没有行动,但我回来后会跟进。

标签: iis-7 asp-classic


【解决方案1】:

提供的答案是正确的,但我需要更多关于如何完成它的细节。为了使它变得非常容易,请按照以下步骤操作。我在我们的 Intranet 的沙盒系统上设置了一个 asp 页面计数器。

  1. 打开计算机管理。
  2. 深入到 IIS 服务器 管理
  3. 在“连接”窗格中,单击 应用程序池
  4. 在“应用程序池”窗格中, 右键单击 DefaultAppPool 并 选择高级设置。在看 过程模型部分。
  5. 默认情况下,Identity 属性为 设置为 ApplicationPoolIdentity。 这是一个内置帐户。
  6. 如果设置为默认值,那么您 可以使用内置用户 machinename\IUSR 为您的 权限设置。我不得不 指定机器名称,因为 这是一个虚拟化服务器,YMMV。
  7. 如果未设置为默认值,请使用 该用户名用于您的权限 设置。
  8. 取消对话框并返回 到 Windows 资源管理器,到文件夹 您需要在哪里添加权限。
  9. 右键获取权限 设置。
  10. 设置 machinename\IUSR 或 您确定的非默认用户名 在上面的步骤 6/7 中。授予 根据需要授予权限。

这有助于: http://learn.iis.net/page.aspx/140/understanding-built-in-user-and-group-accounts-in-iis-7/

【讨论】:

    【解决方案2】:

    这个建议是正确的。如果由于任何配置原因无法立即找到解决方案的路径,请尝试运行 procmon(过滤“online_data.xls”)并查看失败的原因、原因以及他们在哪个用户帐户下运行。然后检查 ACL。

    【讨论】:

      【解决方案3】:

      我在 Windows 7 中遇到了类似的问题,我的解决方案是更改身份验证。从 IIS 中选择站点,转到身份验证,禁用匿名身份验证并启用 Windows 身份验证。

      【讨论】:

        【解决方案4】:

        花了一些时间做类似的事情。即使设置正确,它也无法正常工作。

        然后我尝试先在服务器上创建实际文件。原来是有效的伎俩。现在我的 ASP 页面写入现有文件没有问题。

        必须从头开始创建一个新文档,这是另一个问题。

        【讨论】:

          猜你喜欢
          • 1970-01-01
          • 2015-11-24
          • 1970-01-01
          • 1970-01-01
          • 2023-04-01
          • 2018-08-12
          • 1970-01-01
          • 2016-11-15
          • 2019-09-18
          相关资源
          最近更新 更多