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

6

很抱歉,我对此事没有太多信息。

我的客户已将他们的站点从一个古老的系统移动到Windows 2008服务器上的IIS7。下面是有关错误的信息:

错误: E:\wwwroot\sp\xxx\online_data.xls Microsoft VBScript runtime error '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页面所在的物理文件夹。

我获得访问权限后会查看此问题,但欢迎提供其他建议。


1
我认为那个建议会起作用,另一个选项是检查默认应用程序池是否正在以网络服务运行,并授予网络服务写入该文件夹的访问权限。 - Ta01
谢谢大家的回复。网站上仍然没有任何动作,但我回来后会跟进。 - CMH
4个回答

12
提供的答案是正确的,但我需要更多关于如何完成它的细节。为了让它变得真正容易,按照以下步骤操作。我正在在我们的内部网络中设置一个ASP页面计数器。
  1. 打开“计算机管理”。
  2. 展开到IIS服务器管理
  3. 在连接面板中,单击应用程序池
  4. 在应用程序池面板中,右键单击DefaultAppPool并选择高级设置。查看进程模型部分。
  5. 默认情况下,Identity属性设置为ApplicationPoolIdentity。这是一个内置账户。
  6. 如果设置为默认值,则可以使用内置用户machinename\IUSR进行权限设置。我必须指定机器名称,因为这是一台虚拟化服务器,可能会有不同。
  7. 如果未设置为默认值,请使用步骤6/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/

3

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


2

我曾在Windows 7中遇到类似的问题,我的解决方案是更改身份验证方式。在IIS中,选择网站,进入身份验证,禁用匿名身份验证并启用Windows身份验证。


0

之前花了一些时间处理类似的问题。即使设置正确,它也无法工作。

然后我尝试先在服务器上创建实际文件。结果发现这个方法有效。现在我的ASP页面可以轻松地写入已存在的文件。

可能是从头开始创建新文档时出现了其他问题。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接