[英]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.