[英]System.Net.WebClient “Unable to write data to the transport connection”
我正在尝试使用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;
}
}
在两次使用客户端时,您将禁用保持活动状态。 我相信那是你的问题。
如果删除下载位,仅保留上传,会发生什么?
更新
我知道使用非基本/摘要涉及往返,并且在将keep-alive设置为false但不确定基本情况下将不起作用。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.