我正在尝试使用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;
}
}
答案 0 :(得分:0)
当您使用客户端两次时,您正在禁用保持活动状态。我相信这是你的问题。
如果删除下载位,只保留上传会怎么样?
<强>更新强>
我知道使用非基本/摘要涉及往返,并且不能将keep-alive设置为false但不确定基本。