我整整一个星期都在为这个问题而苦苦挣扎。过去我在 IIS 上设置了很多 FTP 服务器,都没有遇到什么大问题。但现在我遇到了这个问题,我不知道该怎么办。
我在 Google Cloud Platform 中有一个新的 VM 实例,运行带有 IIS 10 的 Windows Server 2019 Datacenter OS。我创建了 FTP 站点(使用虚拟目录进行用户隔离),就像我以前对这些服务器所做的那样。(我创建了 FTP 站点,然后创建了 LocalUser 虚拟目录,并在文件夹中命名与将使用它们的用户完全相同的名称。此外,物理路径具有该用户的所有权限(IIS_USERS 和 IUSR 也是如此),以及允许访问的授权规则)
但它不起作用,FTP 客户端总是抛出 530 错误(提示:主目录无法访问)。我检查了所有授权规则和权限,一切似乎都很好。
检查日志后,我发现了详细的错误代码,完整代码是 530 3 3。查看文档后发现错误 # 3 是:“文件系统返回错误。”... 我不知道它可能是什么。
如能得到任何帮助我将非常感激,提前谢谢您。
亲切的问候。
答案1
没关系,我使用 procmon 解决了它。
如果将来有人在 IIS 10 / Windows Server 2019 上再次遇到“530 用户无法登录,主目录无法访问”并且一切似乎都很好,我将分享我对这个问题的了解:
引导你走向光明的东西就是
Procmon
利用它,你就会发现发生了什么。就我而言,当我设置所有虚拟目录时,我创建了
LocalUser
文件夹(因为它写在所有关于 FTP 隔离的文档中)。但显然在 IIS 10 / Windows Server 2019 中。它不用作LocalUser
访问路径的本地用户的通配符。它必须与服务器的名称完全相同(使用时Procmon
我注意到它正在寻找与我的服务器名称相同的路径 - 例如 EDD_SERVER - 当然,该路径不存在 - 实际上,procmon 结果是:“PATH NOT FOUND” -)因此,我将 FTP 站点上的虚拟目录从 重命名
LocalUser
为EDD_SERVER
(我的服务器的名称),并且效果很好。
我只是不明白为什么 LocalUser 不再起作用了。
希望它能对某人有所帮助,亲切的问候。
答案2
我在新的 Server 2019 / IIS10 设置中也遇到了同样的问题,这个帖子对我有帮助
在我的例子中,由于服务器已加入域,因此 FTP 根目录下的虚拟服务器必须是域的名称(netbios 名称)。我通过 procmon 发现了这一点。重命名后,一切正常