我遇到的问题只有在我从IIS运行应用程序时才会出现。
我正在尝试从我的ASP.NET应用程序FTP到外部站点。
我可以通常从服务器FTP,但不能从我的应用程序。 我的请求超时了。
我的网站所有者现在设置为具有完全控制权的IIS_IUSRS用户。
有人知道什么可能阻止我成功吗?
任何帮助都会非常受欢迎。
我的截止日期是在12小时内,我被罗嗦了......
答案 0 :(得分:0)
快速修复可能是将IIS使用的匿名用户设置为您的用户帐户而不是IUSR帐户(在IIS中)。它似乎确实是一个许可问题。
第二个赌注是使用像Wiresharck / Etherreal这样的工具,并检查是否有任何与FTP站点的连接,并从那里进行调试。
答案 1 :(得分:0)
我找到了解决方案
Windows防火墙和非安全FTP流量
可以使用netsh命令从命令行配置Windows防火墙。设置Windows防火墙以允许非安全FTP流量需要2个简单步骤
1)打开防火墙上的端口21
netsh advfirewall防火墙添加规则名称=“FTP(无SSL)”action = allow protocol = TCP dir = in localport = 21
2)激活将动态打开数据连接端口的FTP(又名状态FTP)的防火墙应用程序过滤器
netsh advfirewall设置全局StatefulFtp启用
我真的不知道刚刚做了什么,但它做了伎俩
答案 2 :(得分:0)
同样的问题解决 UsePassive 。也许你可以在防火墙上为FTP添加允许端口20,21(对我来说不是必需的)。
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;