尝试使用主机名而不是IP访问IIS时未登录(530)
我已在Windows Server 2008(IIS 7.5)上设置了FTP站点。已启用匿名身份验证,但未启用基本身份验证。我添加了一条规则,允许所有匿名用户阅读。在端口21的绑定中,我已将尝试使用主机名而不是IP访问IIS时未登录(530),iis,ftp,iis-7.5,Iis,Ftp,Iis 7.5,我已在Windows Server 2008(IIS 7.5)上设置了FTP站点。已启用匿名身份验证,但未启用基本身份验证。我添加了一条规则,允许所有匿名用户阅读。在端口21的绑定中,我已将testftp.com指定为主机名。在hosts文件中,我添加了一行 127.0.0.1 testftp.com。现在,我尝试通过两种方式访问它: 来自Internet Explorer。我收到“此页面无法显示”消息 从C#代码: 字符串ftpFilePath=”ftp://testftp.com/sampl
testftp.com
指定为主机名。在hosts文件中,我添加了一行
127.0.0.1 testftp.com
。现在,我尝试通过两种方式访问它:
字符串ftpFilePath=”ftp://testftp.com/sample.txt";
FtpWebRequest=(FtpWebRequest)WebRequest.Create(ftpFilePath);
request.Method=WebRequestMethods.Ftp.DownloadFile;
request.Credentials=新网络凭据(“匿名”password@testftp.com");
这样我就得到了(530)未登录的错误
现在,如果我从绑定和主机文件中删除主机名,并使用IP地址访问它,我可以毫无问题地读取文件。有什么配置我需要考虑让它工作吗?< /p> < p>虽然我不确定,但这似乎是一个愚蠢的IIS漏洞。我尝试在绑定中清除主机名,猜猜看,它成功了 我想说您误解了绑定设置的要点 不需要将主机名绑定到IP地址 它将FTP站点绑定到IP地址和主机名(分别)
主机名框实际上与IP地址绑定根本不相关。它允许您将多个FTP站点(实例)绑定到同一IP地址,同时允许FTP服务器区分客户端想要连接的站点(类似于虚拟HTTP主机)。客户端需要使用
HOST hostname
命令进行选择(类似于HTTP/1.1HOST
头)
我相信FtpWebRequest
确实使用了HOST
命令。因此,FTP服务器无法告诉您连接到哪个FTP站点,因此无法通过身份验证
您可以使用特殊的(特定于IIS的)用户名语法“主机|用户名”
来解决这个问题
但正如我在开始时所写的,我相信您实际上不想将FTP站点限制为主机名
如果清除主机名框,FTP服务器不需要HOST
命令