不幸的是,我没有关于此的大量信息。 我有一位客户将他们的网站从古老的系统迁移到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页面所在的位置
当我获得访问时会看到这个,但其他建议将不胜感激。
答案 0 :(得分:12)
提供的答案是正确的,但我需要更详细的说明如何完成它。要使其变得非常简单,请按照以下步骤操作。我在内联网的沙箱系统上设置了一个asp页面计数器。
这有助于: 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页面写入现有文件没问题。
必须是从头开始创建新文档的另一个问题。