我正在尝试从多个网站下载PDF。我无法设法从任何URL成功下载它们。
foreach (string url in urls)
{
ServicePointManager.SecurityProtocol = SecurityProtocolType.Tls12;
using (var client = new WebClient())
{
byte[] filedata = client.DownloadData(url);
using (MemoryStream ms = new MemoryStream(filedata))
{
}
}
}
我在Google上搜索了很多,大多数帖子都提到了某种SSL问题。我添加了SecurityProtocolType.Tls12(并尝试使用ssl3)。这些网站大多数都是众所周知的网站(例如:保管箱)。
我也尝试使用HttpClient
。
我也尝试过使用DownloadFile
。
我得到的异常如下:
IOException:无法从传输连接中读取数据:现有连接被远程主机强行关闭。 1/2
SocketException:现有连接被远程主机2/2强制关闭
此异常最初是在此调用堆栈上抛出的: System.Net.Sockets.Socket.Receive(byte [],int,int,System.Net.Sockets.SocketFlags) System.Net.Sockets.NetworkStream.Read(byte [],int,int)
问题可能是由于尺寸引起的吗?它们大多数的重量在5到20 mb之间。
更新:
在控制台应用程序中使用代码将正确下载文件。 iis可能有问题吗?