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

时间:2009-05-31 21:51:53

标签: asp.net iis-7 ftp

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

我正在尝试从我的ASP.NET应用程序FTP到外部站点。

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

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

有人知道什么可能阻止我成功吗?

任何帮助都会非常受欢迎。

我的截止日期是在12小时内,我被罗嗦了......

3 个答案:

答案 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;