1

准备在 Windows 2003 (web2) 上使用 Windows 2000 (web1) 迁移 asp 应用程序。在旧服务器上有一个共享文件的文件夹,用于导入和导出(\\web1\ 文件夹)。我想提供对与新服务器相同的文件夹访问 asp-application 的访问。配置 IIS:允许匿名访问,包括检查窗口。池在网络服务下启动。但是没有访问权限。还有一个有趣的事实:如果在新服务器本地处理为http://localhost,您可以访问(模拟工作),如果处理为http://web2,则没有访问权限。错误:

Microsoft VBScript runtime error Error '800a0046 ' 

Permission denied

我们更改了一些安全设置,本地 IE 6 - 也通过http://web2获得,但在其他浏览器(如 Opera)中不起作用。在其他机器上也不起作用。

从 SysInternal 放置实用程序 procmon。它表明在这两种情况下都是对资源的呼吁,在两种情况下都是模仿,都一样,但在一种情况下,成功,而另一种情况下拒绝访问。

此应用程序的整个安全系统基于 NTFS 的权限,因此您无法禁用模拟。

我是经典asp的新手。我无法理解这种情况。

4

2 回答 2

6

经典 ASP 不在应用程序池帐户下运行,而是使用 IIS 匿名身份验证选项卡中提供的凭据,通常是 IUSR_MACHINENAME。

看起来匿名身份验证失败并且使用了 Windows 身份验证,这就是它在本地和默认支持 Windows 身份验证的 IE 中工作的原因。

更新:查看这篇文章:如何解决 IIS 中与 Kerberos 相关的问题

更新 2:这也可以帮助您诊断 IIS 端发生了什么:身份验证和访问控制诊断

我想访问共享的最简单方法是向来宾组添加读取权限。

于 2011-02-15T06:05:56.457 回答
2

您可以将匿名身份验证的用户更改为应用程序池用户,我对其进行了测试,并且可以正常工作!去 iis -> 网站\虚拟目录 -> 身份验证 -> 选择匿名 -> 编辑 -> 将用户身份更改为应用程序池用户

截屏:

截屏

于 2018-04-17T16:29:14.850 回答