繁体   English   中英

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

[英]FTP from a ASP.NET application on IIS7 Fails

我有一个问题,仅当我从IIS运行我的应用程序时才会出现。

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

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

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

有谁知道什么会阻止我成功?

任何帮助将非常贴切。

我的截止日期是12小时内,我为王室搞砸了...

同样的问题解决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;

一种快速解决方案是将IIS使用的匿名用户设置为您的用户帐户,而不是IUSR帐户(在IIS中)。 它似乎确实是一个权限问题。

第二个选择是使用Wiresharck / Etherreal之类的工具,检查是否建立了与FTP站点的任何连接,然后从那里进行调试。

我找到了解决方案

Windows防火墙和非安全FTP流量

可以使用netsh命令从命令行配置Windows防火墙。 只需两个简单的步骤即可设置Windows防火墙,以允许非安全FTP流量

1)在防火墙上打开端口21

netsh advfirewall防火墙添加规则名称=“ FTP(no SSL)”操作=允许协议= TCP目录=在localport = 21

2)激活FTP(又称有状态FTP)的防火墙应用程序过滤器,该过滤器将动态打开端口以进行数据连接

netsh advfirewall设置全局StatefulFtp启用

我真的不知道那是怎么做的,但是它成功了

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM