У меня есть веб-страница ASP.NET с элементом управления FileUpload
<asp:FileUpload ID="fileUploadTN" style="width:250px" runat="server" />
Одна из проблем заключается в том, что при загрузке больших файлов мой сеанс asp.net истекает. Это связано с ограничением в DiscountAsp.net и непревзойденным 20-минутным тайм-аутом сеанса (если не переключиться на SqlServer). Нет проблем с загрузкой большого файла, просто сеанс умирает вскоре после завершения.
Итак, у меня есть обходной путь: таймер javascript периодически обращается к другой веб-странице, чтобы сеанс продолжался дольше.
function timerEvent() { jQuery.get( "/svc.aspx?act=ping", function(data) { }); }
Это отлично работает, за исключением загрузки файлов. Во время загрузки файла на HTTP GET нет ответа, и запрос даже не попадает на страницу svc.aspx. Я могу наблюдать в Fiddler, и происходит GET, но ответа нет. Как только загрузка файла будет завершена, ответы начнутся снова. Но при длительной загрузке файла мой сеанс может быть отключен по тайм-ауту.
Даже если я открою новое окно в браузере и перейду на страницу svc.aspx напрямую, он застрянет в запросе. Я могу открыть окно в другом окне браузера приложений (например, FF -> Chrome), и svc.aspx ответит. Таким образом, кажется, проблема возникает, когда в том же сеансе другие HTTP-запросы GET не отвечают во время загрузки файла.
ashx
. - person SLaks   schedule 05.04.2011