Odr*_*ade 3 c# asp.net httpruntime executiontimeout
在我的工作地点,我们有一个ASP.NET页面,它使用以下代码来执行文件下载.我们使用它而不是Request.TransmitFile(),因为该文件直接来自zip存档.
private void DownloadStream(Stream stream)
{
int bytesRead;
int chunkSize = 1048576; //1MB
byte[] readBuffer = new byte[chunkSize];
while ( (bytesRead = stream.Read(readBuffer, 0, readBuffer.Length)) > 0)
{
if (!Response.IsClientConnected)
break;
Response.OutputStream.Write(readBuffer, 0, bytesRead);
Response.Flush();
}
}
Run Code Online (Sandbox Code Playgroud)
我正在尝试确定httpRuntime executionTimeout设置的合理值.正在发送的文件范围高达1GB的大小,和我们的某些用户有非常慢的管道*的网络服务器(64K思行).我们不希望这些用户体验连接重置.但是,我们希望为站点的其余部分保留合理的超时值.
有没有办法只为这个特定的页面定义一个executionTimeout设置(或者甚至专门为该页面设置它)?推荐的方法是什么?我知道我们可能最好使用一种完全不同的方法来提供文件(例如FTP),但我们没有自由选择.我们所能做的就是修改网站的代码.
此外,我确实认为这些下载应该在发送之前进行压缩,但这是另一回事.
*题外话题:"慢管"是一个令人讨厌的混合比喻吗?我应该说"小管",但在这种情况下,这听起来很奇怪.意见?
有没有办法只为这个特定的页面定义一个executionTimeout设置(或者甚至专门为该页面设置它)?推荐的方法是什么?
是的,您可以创建一个具有自己的web.config的子目录,并将需要特定设置的特定页面放在子目录中.此外,web.config文件的模式还提供了有助于指定特定路径(甚至某个页面)的设置的元素.例如,如果您只想覆盖一个页面的设置(upload.aspx),则可以在web.config文件中应用该元素,如下所示:
http://www.velocityreviews.com/forums/t75299-executiontimeout.html
更多信息:http://forums.asp.net/t/1235207.aspx
和这里:http://codebetter.com/blogs/peter.van.ooijen/archive/2006/06/15/146446.aspx
| 归档时间: |
|
| 查看次数: |
9993 次 |
| 最近记录: |