【发布时间】:2013-11-12 19:17:37
【问题描述】:
我有以下功能块,当客户端在美国附近的某个地方访问服务器时,它可以正常工作。但是,当客户端距离较远时,如东欧,大文件下载失败。关于如何模拟来自远程 IP 地址的流量的任何想法?或任何其他使下载速度更快的想法。
文件大小适中,即 100 MB。它们与提供网站的服务器位于同一台服务器上。我正在使用 C# .NET Framework 4.5 IIS 8
System.IO.Stream stream = null;
int bytesToRead = 262144;
byte[] buffer = new Byte[bytesToRead];
try
{
var response = HttpContext.Current.Response;
response.ClearContent();
response.Clear();
//get file from file system
string path = Properties.Settings.Default.DownloadDirectory + fileId;
var fileInfo = new FileInfo(path);
if (fileInfo.Exists)
{
using (stream = new FileStream(path, FileMode.Open))
{
response.ContentType = mimeType;
response.AddHeader("Content-Disposition", "attachment; filename=\"" + name + "\"");
response.AddHeader("Content-Length", fileInfo.Length.ToString());
int length;
do
{
if (response.IsClientConnected)
{
length = stream.Read(buffer, 0, bytesToRead);
response.OutputStream.Write(buffer, 0, length);
response.Flush();
buffer = new Byte[bytesToRead];
}
else
{
length = -1;
}
} while (length > 0);
stream.Close();
response.End();
}
}
}
【问题讨论】:
-
ipfw,上个问题中提到的就是我用来做这个的。
标签: c# asp.net file-transfer windows-server-2012