аХи все:
Я создал файл .zip на моем веб-сайте, пишет 1110_1200_events.zip. Я использовал код для возврата .zip файлов в FileResult .
public FileResult GetEvents()
{
string fileName = "1020_1200_events.zip",
filePath = Server.MapPath("~/public/Event/" + fileName);
return File(filePath, "application/zip", fileName);
}
Проблема заключается в том, что если я использовал WebRequest для чтения потока файла, я получил исключение I / O в webResponse.GetResponseStream ( ) .Read (buffer, 0, buffer.Length): Невозможно прочитать данные из транспортного соединения: существующее соединение было принудительно закрыто удаленным хостом .
Ниже приведен фрагмент кода. Как мне обойти это? Спасибо.
var webRequest = WebRequest.Create(GetSPIUrl() + "SB/GetEvents");
webRequest.Method = "POST";
webRequest.ContentType = "application/zip";
StreamWriter writer = new StreamWriter(webRequest.GetRequestStream());
writer.WriteLine();
writer.Close();
// Send the data to the webserver
var webResponse = webRequest.GetResponse();
var reader = new StreamReader(webResponse.GetResponseStream(), Encoding.UTF8);
FileInfo fi = new FileInfo("myData.zip");
using (FileStream fs = fi.OpenWrite())
{
byte[] buffer = new byte[8 * 1024];
int len;
while ((len = webResponse.GetResponseStream().Read(buffer, 0, buffer.Length)) > 0)
{
fs.Write(buffer, 0, len);
}
}