![Mac 上的 IIS 服务器可以看到目录结构,但看不到单个文件?](https://linux22.com/image/791964/Mac%20%E4%B8%8A%E7%9A%84%20IIS%20%E6%9C%8D%E5%8A%A1%E5%99%A8%E5%8F%AF%E4%BB%A5%E7%9C%8B%E5%88%B0%E7%9B%AE%E5%BD%95%E7%BB%93%E6%9E%84%EF%BC%8C%E4%BD%86%E7%9C%8B%E4%B8%8D%E5%88%B0%E5%8D%95%E4%B8%AA%E6%96%87%E4%BB%B6%EF%BC%9F.png)
我有一个类似弗兰肯斯坦的设置。我正在将客户相当老旧的技术基础设施(相当广泛,这是一项完全基于技术的业务)从传统 ASP 迁移到更现代的架构。
我正在尝试在本地复制他们当前的设置。最大的问题是,要运行 Classic ASP,我需要在 Windows 上运行 - 我在 M 系列(基于 ARM)Mac 上。我有一个运行良好的 Windows 11 虚拟机,并且 IIS 可以正常工作并提供文件,但问题是,当我尝试通过网络驱动器提供文件时(这就是我使用的技术将我的 Mac 硬盘驱动器代表到 Windows 的方式),我得到:
HTTP Error 404.0 - Not Found
The resource you are looking for has been removed, had its name changed, or is temporarily unavailable.
现在我可以看到网络驱动器上的文件,甚至可以毫无问题地访问它们。理论上 IIS 似乎可以看到它们。IIS 显示一个包含正确文件名的目录,但每当我单击一个目录时,就会出现上述 404 错误。那么它以某种方式能够将文件视为目录树,但不能为它们提供服务?原因尚不清楚。
如果有人知道为什么 IIS 可以看到目录结构中的文件,但无法提供任何文件,请告诉我。我想这是某种权限或文件路由问题。不幸的是,我并不是 IIS 专家。我的大部分 devops/sysadmin 类型的工作都是在 Linux 机器上进行的。
答案1
你不能。VM 层正在通过其本地管道安装“网络驱动器”,该管道在用户上下文中启动。当您是用户时,非常适合浏览文件,当您将用户上下文指向该驱动器时,非常适合浏览。
IIS 运行在内核模式 (http.sys) 下,其服务运行在系统上下文中。它们对您的用户空间驱动器一无所知,也永远不会知道。出于安全原因,IIS 永远不会从此类本地重定向驱动器执行任何可服务的内容。
解决方案:将文件复制到 [IIS] 本地目录。
我很遗憾,没有任何技巧可以解决这个问题(我从未听说过)。