401.1访问指向网络共享的虚拟目录时出错

时间:2009-03-06 06:23:32

标签: iis virtual-directory sharing network-share

IIS5正在SERVER1上运行。

IIS中的一个虚拟目录myfiles指向“另一台计算机上的共享位置”,// SERVER2 / myfilesshare

当我尝试访问该页面时: http://SERVER1/myfiles

...我收到错误:

您无权查看此页面

HTTP 401.1 - 未经授权:登录失败

互联网信息服务

我已经在IIS中检查了“Connect As ...”设置。我用来访问共享的凭据是正确的 - 它们在连接到Windows资源管理器中的共享时工作,但不能通过IIS虚拟目录工作。 我已尝试在SERVER2中的文件夹上向Everyone授予完全权限,但没有运气。

有什么想法吗?

4 个答案:

答案 0 :(得分:7)

这就是我解决问题的方法,可能对你有帮助。

默认情况下,IIS在使用匿名身份验证时会将名为IUSR的本地用户用于虚拟目录。 它不使用应用程序标识,如果您使用procmon,这应该很明显。

如何强制它使用应用程序标识?

很容易,在IIS经理下:

1)转到身份验证

2)编辑“匿名身份验证”

3)选择“应用程序池标识”

4)重启IIS&它应该工作。

与PS完成相同:Set-WebConfigurationProperty -filter /system.WebServer/security/authentication/AnonymousAuthentication -name username -value ""

此链接包含优缺点:http://blogs.technet.com/b/tristank/archive/2011/12/22/iusr-vs-application-pool-identity-why-use-either.aspx

答案 1 :(得分:2)

许可问题可能很棘手。尝试在“其他计算机”上运行 filemon 可以在此处下载:http://technet.microsoft.com/en-us/sysinternals/bb896642.aspx (这不是一个很大的应用程序,只是一个很小的轻量级工具)

启动filemon后,停止监控进程(我相信在启动应用程序时默认启用它),清除已记录的数据,为您无法访问的文件夹创建过滤器。启动监控过程。请求您的网页。停止监视进程并在filemon中查找“拒绝访问”消息。找到后,filemon还会提到尝试访问的实际用户的名称。这可能有助于您找到解决方案。

在使用Windows Server 2008时,您需要 processmon http://technet.microsoft.com/en-us/sysinternals/bb896645.aspx

答案 2 :(得分:1)

想象一下,无论出于何种原因,您希望IIS服务器访问文件服务器上的共享并且它们不在同一个域中。

如果您可以关注并让它为您工作(我已经使用IIS 7完成了Win2008-R1 32位文件服务器和64位Win2008-R2),那么您应该在任何情况下都处于良好状态。

  • 具有相同密码的两台服务器上的同名本地帐户
  • 在IIS上,使用aspnet_regiis -ga MyAccount授予本地帐户访问IIS内核的权限
  • 现在将其用作网站的应用程序池标识
  • 使用本地安全策略(管理工具)为本地帐户的委派启用信任
  • 重新启动IIS服务器
  • 在文件服务器上,使用本地安全策略启用从本地帐户的网络访问
  • 创建共享,向本地帐户授予所需权限(根据需要还包括“安全”选项卡权限)
  • 打开文件&打印两者上的共享端口(尽可能限制),以便在两者之间使用Windows资源管理器时指向它的工作位置
  • 返回IIS,使用文件服务器的共享文件夹的UNC路径创建虚拟目录
  • 只需使用传递身份验证(使用您的本地帐户)
  • 您可以告诉虚拟目录的匿名身份验证设置也使用应用程序池标识

使用可测试/验证的内容。关键是使用Service Account(域或其他)授权委托,并让IIS使用您希望它使用的帐户而不是本地服务器或网络服务。

这花了我一整天才弄明白。 StackOverflow和其他互联网资源中的各种线程帮助我找到了各种资源,但没有在任何地方找到我的确切答案。希望下一个坚持这个问题的人会在解决这条路的过程中获得速度提升,我的描述对我有用。

答案 3 :(得分:0)

尝试在虚拟目录安全性选项卡上启用Windows身份验证(在IIS中)。