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

时间:2010-12-22 02:15:55

标签: iis-7 asp-classic

不幸的是,我没有关于此的大量信息。 我有一位客户将他们的网站从古老的系统迁移到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页面所在的位置

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

4 个答案:

答案 0 :(得分:12)

提供的答案是正确的,但我需要更详细的说明如何完成它。要使其变得非常简单,请按照以下步骤操作。我在内联网的沙箱系统上设置了一个asp页面计数器。

  1. 打开计算机管理。
  2. 深入查看IIS服务器 管理
  3. 在“连接”窗格中,单击 应用程序池
  4. 在“应用程序池”窗格中, 右键单击DefaultAppPool和 选择高级设置。顺便拜访 过程模型部分。
  5. 默认情况下,Identity属性为 设置为ApplicationPoolIdentity。 这是一个内置帐户。
  6. 如果设置为默认值,那么你 可以使用内置用户 machinename \ IUSR为您的 权限设置。我不得不 指定机器名称,因为 这是一个虚拟化服务器,YMMV。
  7. 如果未设置为默认值,请使用 您的权限的用户名 设置。
  8. 取消退出对话框并返回 到Windows资源管理器,到该文件夹 你需要添加权限的地方。
  9. 右键单击以获取权限 设置。
  10. 设置machinename \ IUSR或  您确定的非默认用户名  在上面的第6/7步。格兰特  根据需要提供权限。
  11. 这有助于: http://learn.iis.net/page.aspx/140/understanding-built-in-user-and-group-accounts-in-iis-7/

答案 1 :(得分:3)

建议是正确的。如果出于任何配置原因,解决方案的路径不会立即明显,请尝试运行procmon(过滤“on_data.xls”)并查看谁失败,原因以及他们运行的用户帐户。然后检查ACL。

答案 2 :(得分:2)

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

答案 3 :(得分:0)

用类似的东西花了一点时间。即使设置正确,它也无法正常工作。

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

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