gpt4 book ai didi

c# - 为大型下载配置 httpRuntime 执行超时

转载 作者:行者123 更新时间:2023-11-30 14:19:50 24 4
gpt4 key购买 nike

在我的工作地点,我们有一个 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();
}
}

我正在尝试为 httpRuntime executionTimeout 设置确定一个合理的值。发送的文件大小可达 1GB,我们的一些用户使用* 到网络服务器的管道非常慢(想想 64K 行)。我们不希望这些用户体验连接重置。但是,我们希望为站点的其余部分保留一个合理的超时值。

有没有办法为这个特定页面定义一个 executionTimeout 设置(或者甚至专门为那个页面设置为无限制)?推荐的方法是什么?我知道我们可能最好使用完全不同的方法来提供文件(例如 FTP),但我们没有做出选择的自由。我们所能做的就是修改网站的代码。

另外,我确实认为这些下载应该在发送前压缩,但那是另一回事。

*题外话:“slow pipe”是一个烦人的混合比喻吗?我可能应该改用“小管道”,但在这种情况下这对我来说听起来很奇怪。意见?

最佳答案

Is there a way to define an executionTimeout setting only for this specific page (or even make it unlimited for that page specifically)? What's the recommended approach?


Yes, you can make a subdirectory which has a own web.config and put the certain page which need particluar setting in the subdirectory. In addition, the web.config file's schema also provide the element which can help to specify setting for a certain path (even a certain page). For example, if you'd like to override the setting for just one page(upload.aspx), you can apply the element in the web.config file as below:

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

关于c# - 为大型下载配置 httpRuntime 执行超时,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2210487/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com