虚拟目录到 UNC 路径的权限问题

Rob*_*ett 13 iis permissions unc virtual-directory

我的站点(测试环境)中有一个虚拟目录。它是一个 UNC 共享,也用作公共 FTP。

它被配置为作为域管理员帐户连接,并且“测试设置”表示一切似乎都在工作。但是,当我尝试连接到它时,我得到:

500 - “由于访问被拒绝,无法开始监视 \INTRANET\FTP\test\web.config 上的更改”

这是一个 ASP.NET YSOD。我不知道为什么 ASP.NET 会参与进来,因为它是我请求的静态 .jpg 文件。

我尝试打开失败的请求跟踪,这是特定错误:

  • 模块名称 WindowsAuthentication
  • 通知 2
  • HttpStatus 500
  • HttpReason 内部服务器错误
  • HttpSubStatus 0
  • 错误代码 0
  • 配置异常信息
  • 通知 AUTHENTICATE_REQUEST
  • ErrorCode 操作成功完成。(0x0)

如果我将“物理路径登录类型”从 ClearText 更改为 Network。我收到以下 IIS 错误:

HTTP 错误 500.19 - 内部服务器

错误无法访问请求的页面,因为该页面的相关配置数据无效。

详细的错误信息

  • 模块IIS Web 核心
  • 通知开始请求
  • 处理程序尚未确定
  • 错误代码 0x80070005
  • Config Error由于权限不足无法读取配置文件
  • 配置文件 \\?\UNC\INTRANET\FTP\test\web.config
  • 请求的 URL http://test.mydowmain.com:80/uploads/images/ca49acf6-6174-412e-8abd-59fab983e931.jpg

  • 物理路径 \\INTRANET\FTP\test\images\ca49acf6-6174-412e-8abd-59fab983e931.jpg

  • 登录方法尚未确定

  • 登录用户尚未确定
  • 失败请求跟踪日志目录 C:\inetpub\logs\FailedReqLogFiles

奇怪的是,这不会生成失败的请求日志——我已将失败的请求跟踪设置为跟踪错误代码为 400-999 的错误。

另外值得注意的是,如果我从 IIS 中打开配置功能,我会看到拒绝访问错误。

我在本地开发机器上对相同的 UNC 路径和相同的用户进行了完全相同的设置。只是在测试服务器上它没有。

我究竟做错了什么?

mfi*_*nni 10

它是一个 ASP.net 应用程序这一事实可能正是这里的问题所在。您的应用程序池标识必须具有权限(不一定是 IIS 标识;默认情况下,应用程序池标识是本地网络服务帐户。)您可能还需要在 IIS 计算机上运行 caspol.exe。

http://msdn.microsoft.com/en-us/library/cb6t8dtz%28v=vs.80%29.aspx

http://learn.iis.net/page.aspx/50/aspnet-20-35-shared-hosting-configuration/

%windir%\Microsoft.NET\Framework\v2.0.50727\caspol -m -ag 1.  -url "file://\\remotefileserver\content$\*" FullTrust
Run Code Online (Sandbox Code Playgroud)


小智 8

我通过在 web 服务器和 unc 服务器上创建匹配帐户解决了我们的问题。然后我修改了应用程序池以使用匹配的帐户而不是网络服务运行。这让我可以灵活地在两台服务器上同步密码,而​​不会影响其他网络服务相关功能。

  • 在花了 5 个小时寻找解决方案之后,IT Action 的解决方案终于对我有用了。因此,我在两台计算机上创建了完全相同的用户,然后将应用程序池设置为使用该帐户运行。我正要为此发疯。终于解决了。希望这有助于每个有同样问题的人 (3认同)