0
在我們的項目中,我們有一個管理應用程序和一個客戶端應用程序。 管理應用程序用於管理所有客戶端。使用處理程序下載文件後會話被清除
因此,當我登錄到服務器應用程序時,管理員憑據保存在會話中。
之後,我在另一個瀏覽器中訪問客戶端應用程序。它包含一個下載功能。下載完成後會清除所有會話數據。所以每次下載後,我都需要在管理模塊中重新登錄。
下載處理
if (context.Request["fileUrl"] != null)
{
fileUrl = context.Request["fileUrl"].ToString();
}
string filename = System.IO.Path.GetFileName(fileUrl);
context.Response.ClearContent();
context.Response.ContentType = "application/exe";
context.Response.AddHeader("content-disposition", String.Format("attachment; filename={0}", filename));
context.Response.TransmitFile(fileUrl);
context.Response.Flush();
我用一個iframe做下載。因此,我將設置源iframe的下載按鈕被點擊
代碼隱藏文件
iframeDownload.Attributes["src"] = "DownloadHandler.ashx?fileUrl=" + downloadUrl;
//code to be executed after download
//here i am enabling a timer control
當但我找不到爲什麼會話此下載後清零。 我在這個SO帖子中發現了類似的問題。 Session expires after file download
但對他而言,它只發生在IE中,但在我的情況下,它發生在所有瀏覽器。
這些代碼行中的任何內容都不會導致您的會話被銷燬。你的文件太大了嗎?導致asp.net進程被回收。 – nunespascal 2012-07-24 05:47:45
@nunespascal:不,它不依賴於文件..它也發生在小文件的情況下.. – 2012-07-24 05:51:00
@nunespascal:我有一個數據庫更新後下載,所以下載後,我更新數據庫中的值同樣的按鈕點擊。我認爲這不會影響任何會話回收循環.. – 2012-07-24 05:54:15