我正在尝试设置filezilla服务器。我已按照here的说明进行操作。我编写了一个简单的c#脚本,以便将数据上传到服务器。我的代码如下:
static void UploadFile(string filepath)
{
string m_FtpHost = "ftp://ip:port/";
string m_FtpUsername = "user";
string m_FtpPassword = "pass";
// Get an instance of WebClient
WebClient client = new System.Net.WebClient();
// parse the ftp host and file into a uri path for the upload
Uri uri = new Uri(m_FtpHost + new FileInfo(filepath).Name);
// set the username and password for the FTP server
client.Credentials = new System.Net.NetworkCredential(m_FtpUsername, m_FtpPassword);
// upload the file asynchronously, non-blocking.
client.UploadFileAsync(uri, "STOR", filepath);
}
当我从同一台计算机上运行该脚本时,一切正常。当我试图从同一局域网的另一台计算机上运行相同的脚本时,我遇到了问题。该文件没有正确发送。当我关闭防火墙时,上传正在正常进行。知道如何克服防火墙吗?
答案 0 :(得分:1)
通常,Windows要求用户在尝试使用任何端口时授予程序权限(Windows get弹出,要求允许或禁止程序使用该端口)... 我不知道怎么做,但我发现了一个链接...
我不确定公开这个对话需要满足哪些条件,我 将假设一个试图打开监听端口的应用程序 一个vanilla Windows实例应始终显示此对话框。为什么 你不尝试将你的应用程序添加到'授权的应用程序' 列表,或使用Windows防火墙COM手动打开端口 interop(NetFwTypeLib)?
引自alexw