IIS7上ASP.NET应用程序的FTP失败

IIS7上ASP.NET应用程序的FTP失败,asp.net,iis-7,ftp,Asp.net,Iis 7,Ftp,我只有在从IIS运行应用程序时才会出现问题 我正在尝试将ASP.NET应用程序通过FTP传输到外部站点 我通常可以从服务器FTP,但不能从应用程序FTP。 我的请求超时了 我的网站的所有者现在设置为具有完全控制权的IIS_IUSRS用户 有人知道什么会阻止我成功吗 任何帮助都将是非常感激的 我的截止日期在12小时内,我被彻底搞定了…一个快速解决方案可能是将IIS使用的匿名用户设置为您的用户帐户,而不是IIS中的IUSR帐户。这似乎确实是一个许可问题 第二种方法是使用wireshark/Ether

我只有在从IIS运行应用程序时才会出现问题

我正在尝试将ASP.NET应用程序通过FTP传输到外部站点

我通常可以从服务器FTP,但不能从应用程序FTP。 我的请求超时了

我的网站的所有者现在设置为具有完全控制权的IIS_IUSRS用户

有人知道什么会阻止我成功吗

任何帮助都将是非常感激的


我的截止日期在12小时内,我被彻底搞定了…

一个快速解决方案可能是将IIS使用的匿名用户设置为您的用户帐户,而不是IIS中的IUSR帐户。这似乎确实是一个许可问题

第二种方法是使用wireshark/Etherreal这样的工具,检查是否与FTP站点建立了连接,并从那里进行调试。

我找到了解决方案

Windows防火墙和非安全FTP通信

可以使用netsh命令从命令行配置Windows防火墙。设置Windows防火墙以允许不安全的FTP通信需要2个简单步骤

1打开防火墙上的端口21

netsh advfirewall firewall add rule name=FTP no SSL action=allow protocol=TCP dir=in localport=21

2为FTP激活防火墙应用程序筛选器,即动态打开数据连接端口的有状态FTP

netsh advfirewall设置全局状态启用FTP

我真的不知道这是怎么回事,但它确实解决了同样的问题。也许你可以添加允许端口20,21的FTP防火墙上为我没有必要

FtpWebRequest reqFTP;
reqFTP = (FtpWebRequest)FtpWebRequest.Create(new Uri(@"ftp://ftp.example.com/"));
reqFTP.UseBinary = true;
reqFTP.Credentials = new NetworkCredential("user", "password");
reqFTP.Proxy = null;
reqFTP.KeepAlive = false;
reqFTP.UsePassive = true;

FTP在传输数据时使用一组端口。第一个为命令打开通信通道,而由于FTP中使用了动态端口,第二个将监视FTP传输并根据需要打开其他端口。问题,为什么除了在您的应用程序中之外,这一切都有效?它不是在您进行FTP测试的同一台机器上运行的吗?