尝试使用主机名而不是IP访问IIS时未登录(530)

尝试使用主机名而不是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

我已在Windows Server 2008(IIS 7.5)上设置了FTP站点。已启用匿名身份验证,但未启用基本身份验证。我添加了一条规则,允许所有匿名用户阅读。在端口21的绑定中,我已将
testftp.com
指定为主机名。在hosts文件中,我添加了一行
127.0.0.1 testftp.com
。现在,我尝试通过两种方式访问它:

  • 来自Internet Explorer。我收到“此页面无法显示”消息
  • 从C#代码:

    字符串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.1
    HOST
    头)

    我相信
    FtpWebRequest
    确实使用了
    HOST
    命令。因此,FTP服务器无法告诉您连接到哪个FTP站点,因此无法通过身份验证

    您可以使用特殊的(特定于IIS的)用户名语法
    “主机|用户名”
    来解决这个问题

    但正如我在开始时所写的,我相信您实际上不想将FTP站点限制为主机名

    如果清除主机名框,FTP服务器不需要
    HOST
    命令