我已经在Windows 2008 (IIS 7.5)上设置了一个FTP站点。启用匿名身份验证,而不启用基本身份验证。我添加了一条允许所有匿名用户阅读的规则。在端口21的绑定中,我将testftp.com指定为主机名。在主机文件中,我添加了行127.0.0.1 testftp.com。现在,我尝试以两种方式访问它:
(530) Not logged in错误。现在,如果我从绑定和主机文件中删除主机名,并使用IP地址访问它,我就可以毫无问题地读取文件。我需要考虑哪些配置才能让它正常工作?
发布于 2015-10-13 12:43:27
我想说你误解了绑定设置的意义。
不是将主机名绑定到IP地址。
它将FTP站点绑定到IP地址和主机名(分别)。
主机名框实际上与IP地址绑定完全无关。它允许您将多个FTP站点(实例)绑定到同一个IP地址,但允许FTP服务器区分客户端希望连接的站点(类似于虚拟HTTP托管)。客户机需要使用HOST hostname命令来选择(类似于HTTP/1.1 Host报头)。
我相信FtpWebRequest确实使用了HOST命令。因此FTP服务器无法告诉您连接到哪个FTP站点,因此它无法进行身份验证。
您可以使用特殊的(特定于IIS的)用户名语法"HOST|USERNAME"来解决这个问题。
但是,正如我在开始时所写的,我相信您实际上并不想将FTP站点限制为主机名。
如果清除“主机名”框,则FTP服务器不需要HOST命令。
发布于 2015-10-13 11:47:47
虽然我不确定,但这似乎是一个愚蠢的IIS错误。我试着在绑定中清除主机名,你猜怎么着,它成功了。
https://stackoverflow.com/questions/33100833
复制相似问题