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投稿で同様の問題を見つけました。 ファイルのダウンロード後にセッションが期限切れになる

しかし、彼にとっては IE でのみ発生しますが、私の場合はすべてのブラウザーで発生します。

4

1 に答える 1

1

実際、ダウンロードが成功した後の私のコードでは、アプリケーションからフォルダーを削除する必要があります。これにより、App_domainが再起動します。

参照:SO post ASP.NETアプリケーションからディレクトリを削除すると、新しいセッションに戻ります

于 2012-07-24T09:50:07.720 に答える