Iis 7 IIS7权限被拒绝-ASP文件写入

Iis 7 IIS7权限被拒绝-ASP文件写入,iis-7,asp-classic,Iis 7,Asp Classic,不幸的是,我没有这方面的很多信息。 我有一位客户,他已将他们的站点从一个古老的系统移动到Windows 2008 Server上的IIS7。有关错误的信息如下: 错误: E:\wwwroot\sp\xxx\online\u data.xls Microsoft VBScript运行时错误“800a0046” 拒绝许可 /xxx/oat/exceldata.asp,第52行 代码: 目前唯一的建议是: 授予应用程序池 (DefaultAppPool/Classic AppPool)的 模拟身份读写

不幸的是,我没有这方面的很多信息。 我有一位客户,他已将他们的站点从一个古老的系统移动到Windows 2008 Server上的IIS7。有关错误的信息如下:

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

拒绝许可

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

代码:

目前唯一的建议是:

授予应用程序池 (DefaultAppPool/Classic AppPool)的 模拟身份读写 对物理文件夹的权限 asp页面驻留在哪个页面


当我获得访问权限时,我将对此进行查看,但其他建议将不胜感激。

该建议是正确的。如果由于任何配置原因,解决方案的路径都不明显,请尝试运行procmon(在“online_data.xls”上进行筛选),看看谁失败了,为什么失败,以及在哪个用户帐户下运行。然后检查ACL。

提供的答案是正确的,但我需要更多关于如何完成它的细节。要使其真正简单,请执行以下步骤。我在我们内部网的沙箱系统上设置了一个asp页面计数器

  • 开放式计算机管理
  • 深入到IIS服务器 管理层
  • 在连接窗格中,单击 应用程序池
  • 在“应用程序池”窗格中, 右键单击DefaultAppPool并单击 选择高级设置。拜访 流程模型部分
  • 默认情况下,标识属性为 设置为ApplicationPoolIdentity。 这是一个内置帐户
  • 如果设置为默认值,则 可以使用内置用户 machinename\IUSR用于您的 权限设置。我不得不 指定计算机名称,因为 这是一个虚拟化服务器,YMMV
  • 如果未设置为默认值,请使用 该用户名表示您的权限 设置
  • 取消对话框并返回 到Windows资源管理器,到文件夹 您需要添加权限的位置
  • 右键单击以获取权限 设置
  • 设置machinename\IUSR或 您确定的非默认用户名 在上面的步骤6/7中。授予 根据需要设置权限
  • 这有助于:

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

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

    然后我尝试先在服务器上创建实际的文件。结果证明这是一个有效的伎俩。现在我的ASP页面写入现有文件没有问题


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

    我认为这个建议会起作用,另一个选项是检查默认应用程序池是否作为网络服务运行,并允许网络服务访问该文件夹感谢回复。现场仍然没有行动,但我回来后会跟进。
    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)