asp.net - IIS虚拟目录到远程服务器共享文件夹:路径可能不存在,无法验证

标签 asp.net iis iis-7 windows-server-2012-r2 virtual-directory

我无法在IIS网站上获得虚拟目录来指向远程文件服务器上的共享物理文件夹,以求取舍。我在网站计算机和文件服务器计算机上设置了相同(相同的名称和密码)管理员用户,使该用户成为该网站的IIS站点应用程序池上的应用程序池标识所有者,并授予该用户访问权限。远程文件服务器上的共享文件夹,并与该特定用户共享。当我尝试使用Web服务器计算机上的IIS在我的网站中创建一个指向远程文件服务器共享文件夹的虚拟目录时,每次身份验证都可以正常工作,但是找不到该路径。我尝试了UNC的许多组合,甚至防火墙规则。

不好。

我有一个开发箱和一个生产Web服务器,它们都运行相同的IIS .NET网站(在我的开发箱上使用IIS 10版本1607,在生产服务器上使用IIS 7)。 (请注意,Web和文件服务器生产盒正在VMWare虚拟机上运行。)

我有一个安全共享的文件夹,我需要Web服务器将文件放在单独的/其他远程 Windows 2012服务器上。

以下情况适用于我的Web服务器位于开发系统(Windows 10)和生产服务器(Windows Server 2012 R2)上的情况。我做了以下事情:

1.在Web服务器和远程2012R2文件服务器系统上设置具有相同名称和相同密码的管理帐户。

enter image description here

1.我将远程2012R2文件服务器系统上的文件夹共享给了一个特定的人-1. 中提到的管理用户

enter image description here

2.我使此管理用户成为Web服务器上IIS网站上的应用程序池所有者

enter image description here

3.我尝试从Web服务器创建一个虚拟目录,以使用其IP地址作为服务器名称,并同时使用传递身份验证来指向远程文件服务器上的共享文件夹(请记住IIS池标识是相同的)两台计算机上都存在的管理用户)和特定的用户登录选项(即,我都尝试过)

enter image description here

5.我始终收到此错误:

enter image description here

这是什么?我是否需要远程文件服务器上的防火墙规则? MS文档不要说我同意。 “防火墙”一词在此页面上甚至都不会出现:https://support.microsoft.com/en-us/help/308150/how-to-create-a-virtual-directory-on-an-existing-web-site-to-a-folder-that-resides-on-a-remote-computer
而且,“防火墙”一词在此页面上也不会一次出现:https://msdn.microsoft.com/en-us/library/bb763173.aspx

此页面上没有关于防火墙或远程物理目录的任何信息:https://technet.microsoft.com/en-us/library/cc771804.aspx

因此,在遵循了指示之后,我对所错过的一切感到困惑。

我尝试了UNC的许多组合(也许我还是错过了一个?):

\\XXX.XXX.XXX.XXX\servername\_files
\\XXX.XXX.XXX.XXX\_files
\\XXX.XXX.XXX.XXX\subf\_files
\\XXX.XXX.XXX.XXX\\_files
\\XXX.XXX.XXX.XXX\\subf\_files
\\XXX.XXX.XXX.XXX\_files
//XXX.XXX.XXX.XXX/servername/_files
//XXX.XXX.XXX.XXX/subf/_files
//XXX.XXX.XXX.XXX/_files

_files(文件://服务器名称/ _文件)

不好。

enter image description here

我也:
  • 使Web2012Tx用户成为文件夹->属性->安全性->高级
  • 中共享文件夹的所有者
  • 使Web2012Tx用户成为共享文件夹的父文件夹的所有者。
  • 关闭并重新启动IIS网站,并多次回收应用程序池。

  • 它在任何地方都没有说我应该共享共享文件夹的父文件夹,实际上MS共享说明说不这样做。

    不幸的是,这个IIS7 Accessing Network Share没有帮助。

    综上所述,Web2012Tx用户是所有系统上的管理员,所有密码均相同,具有完全的安全访问权限和文件服务器上共享文件夹的所有权,并被分配为Web上网站的IIS应用程序池所有者服务器计算机。文件服务器上的文件夹专门与该特定用户共享。没有身份验证问题,但是仍无法创建IIS虚拟目录,因为共享文件夹显然不可见?

    我需要防火墙规则吗?哪一种?
    我是否在文件服务器上需要IIS(我认为这根本不正确)
    是我的UNC结构吗? (这个有可能)

    我唯一想到的另一件事是生产Web服务器和文件服务器位于VMWare VM上,但这对于手头的任务应该是透明的。

    更新:

    这没有帮助(在共享文件夹所在的文件服务器Windows 2012 R2框中安装共享资源管理器):

    enter image description here

    也没有这样做(适当地打开网络共享可见性):

    enter image description here

    这些对防火墙的调整也没有起作用:

    enter image description here

    更新:

    因此,现在在生产环境的Web服务器上,我获得了良好的身份验证/凭据和文件夹访问测试,但仍然无法通过IIS进行访问!

    enter image description here
    enter image description here

    我们拥有强大的安全性,并且安全的表面积很小,但是我需要这种安全的功能共享。

    最佳答案

    只是好奇,您解决了这个问题吗?我遇到了类似的问题,这是由于在NAS上使用了DFS,即DFS别名被用作UNC路径(在故障转移场景中DFS别名被指向备份存储)。

    当我更改连接以指向相对存储路径时,它可以正常工作,例如而不是\ DFS12345 \ x \ y \ z \ myshare我使用\ NASFiler12345 \ myshare $等

    但是,在故障转移方案中,这可能不是理想的选择,即,如果您跨数据中心进行存储,且每个数据中心的UNC路径不同。对于开发目的,那么可能并不重要。

    DFS可能会出现问题-也就是说,如果您正在使用that(?),请尝试将用户帐户添加到根级别DFS组。

    快速测试以识别此问题:

    打开一个cmd提示符并运行以下命令(uncpath =显然是您的路径)

    mkdir \ uncpath \ test1 *这应该工作

    mkdir \ uncpath \ test2 \ test3 \ test4 **这可能会失败

    如果在运行多个目录创建时返回的结果是:
    “无法创建目录或文件”,那么我怀疑您有DFS权限问题。解决方法是使用相对存储路径,或为存储路径创建DNS别名,或将用户帐户添加到顶级DFS组。

    希望这可以帮助 :-)

    关于asp.net - IIS虚拟目录到远程服务器共享文件夹:路径可能不存在,无法验证,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43840003/

    相关文章:

    html - 背景图像不时变化时的文本可见性问题

    c# - ajax回发后html控件消失

    php - Windows IIS 8.5新网站权限被拒绝

    c# - 当 HttpModule Init 方法在 ASP.NET 集成模式下运行时?

    iis-7 - 经典 ASP 网站中的 session 超时

    mysql - 电源故障后连接到 SQL Server 时出错

    asp.net - 无法加载 View 状态 - ASP.NET 中的动态控件

    ASP.NET Web API - 不允许使用 PUT 和 DELETE 动词 - IIS 8

    iis - 发布到 Azure VM 后对 Web 应用程序进行更改

    asp.net - IIS 7.0 给出 503 错误并停止应用程序池