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

Rin*_*ine 6 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) 
Run Code Online (Sandbox Code Playgroud)

到目前为止唯一的建议是:

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

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

小智 12

提供的答案是正确的,但我需要更多细节来说明如何完成它.要使其变得非常简单,请按照以下步骤操作.我在内联网的沙箱系统上设置了一个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/


mar*_*ona 3

这个建议是正确的。如果由于任何配置原因,解决方案的路径不是显而易见的,请尝试运行 procmon(过滤“online_data.xls”)并查看谁失败了、为什么失败以及他们在什么用户帐户下运行。然后检查 ACL。