IIS 7 共有ホスティング環境に Web サイトがあります。.NET 3.5 を実行しています。サーバーからファイルをダウンロードするためのダウンロードボタンがあります。
このアプリケーションを IIS 6 にローカルに展開すると、問題なく動作します。IIS 7 共有ホスティング サーバーでは、例外が発生します。
ハンドルが無効です。(HRESULT からの例外: 0x80070006 (E_HANDLE)) 説明: 現在の Web 要求の実行中に未処理の例外が発生しました。エラーの詳細とコード内のどこでエラーが発生したかについては、スタック トレースを確認してください。
System.Runtime.InteropServices.COMException: ハンドルが無効です。(HRESULT からの例外: 0x80070006 (E_HANDLE))
COMException (0x80070006): ハンドルが無効です。(HRESULT からの例外: 0x80070006 (E_HANDLE))] [HttpException (0x80004005): リモート ホストとの通信中にエラーが発生しました。エラー コードは 0x80070006 です。]
これはどのように解決できますか?
string strRequest = Convert.ToString(Request.QueryString.Get("file"));
System.IO.FileInfo file = new System.IO.FileInfo(strRequest);
if (file.Exists)
{
Response.Clear();
Response.ContentType = ReturnExtension(System.IO.Path.GetExtension(file.Name));
Response.AppendHeader("Content-Disposition", "attachment; filename=" + file.Name);
Response.TransmitFile(strRequest);
Response.End();
HttpContext.Current.ApplicationInstance.CompleteRequest();
//DownloadFile(file.FullName, file.Name);
}