0
我正尝试使用System.Net.WebClient和基本身份验证进行纯多部分表单上载。System.Net.WebClient“无法将数据写入传输连接”
我遇到了一些麻烦,并且一直在使用Fiddler2来调试我一直在服务中遇到的一些401错误。
我已经得出了下面的代码,而Fiddler2正在运行的成功,但是当它不,并出现以下错误失败:
“无法将数据写入传输连接:一个现有的连接被强制由远程主机关闭。“
代码如下:
var wc = new MyWebClient();
var cc = new System.Net.CredentialCache();
cc.Add(new Uri(uri), "Basic", new System.Net.NetworkCredential(user, pass));
wc.Credentials = cc;
System.Net.ServicePointManager.Expect100Continue = false;
wc.UploadFile(uri + folder, file);
wc.DownloadString(uri + folder).Dump();
return;
class MyWebClient : System.Net.WebClient
{
protected override System.Net.WebRequest GetWebRequest(Uri address)
{
System.Net.WebRequest request = base.GetWebRequest(address);
if (request is System.Net.HttpWebRequest)
{
(request as System.Net.HttpWebRequest).KeepAlive = false;
}
return request;
}
}
嗨Aliostad,下载位工作正常。无论下载是否存在,上传都不起作用。我只是试图将上传自动化成一个简单的表单,稍微让我感到沮丧的是,这样简单的事情让我感到困惑。认为它可能与PreAuthenticate有关,并且已经根据Rick Strahl的博客尝试了WebRequest @ http://www.west-wind.com/weblog/posts/243915.aspx – Aaron 2010-09-11 09:00:59
我知道上述因素,似乎是问题。但是,我会接受这个答案,因为我认为这是类似于http://*.mysecurebackup.net/的WebDAV类功能的东西。这是我想要运行的东西,所以我可以通过WebClient以编程方式上传到我的JungleDisk。如果任何人想要访问细节,以便他们可以尝试/复制上述自己,我非常乐意提供它们,只需要给我一条线。 – Aaron 2010-10-30 07:35:51