0

ボタンをクリックするとMS-Excelを応答ストリームに戻すASP.NET(Webフォーム)ページがあります。テストではすべてが完全に機能しますが、ライブデプロイメントでは、ブラウザーがファイルをダウンロードしようとしているように見えた後、このダイアログボックスが表示されます ここに画像の説明を入力してください 。ReportsShow.aspxは、Excelを生成およびレンダリングするaspxページの名前です。ダウンロードをトリガーするボタンはポストバックを起動するので、ロード時に正しくレンダリングされたときにページが見つからない理由について混乱していますか?私は無知です、そしてどんな助けでも大いに感謝されます

編集:Mayankの要求に応じて、コード構造は次のとおりです。

        // Get instance of reporting service
        IReportingService reportingServiceClient = Reports.GetWebService();
        // Get a fresh copy of the report
        BusinessReport theReport = reportingServiceClient.GetReport(AcctList.ToArray());

        ExcelExport excelExport = new ExcelExport();

        const string templateFileName = "Business-Report.xls";
        string newFileName = String.Empty;

        try
        {
            newFileName = excelExport.CopyTemplateFile(Server.MapPath("~/ExportTemplates/" + templateFileName));
            excelExport.WriteData(forexOptionReport, newFileName);

            Response.Clear();

            Response.AddHeader("content-disposition", string.Format("Attachment; filename=\"{0}\"", "Business-Report" + ".xls"));
            Response.ContentType = "application/vnd.ms-excel";

            Response.TransmitFile(newFileName);
            Response.Flush();
        }
        catch (Exception ex)
        {
            Errors.LogException("Error in Reports.BtnDownloadToExcel_Click", ex);
            throw;
        }
        finally
        {
            if (!String.IsNullOrEmpty(newFileName))
            {
                excelExport.DeleteFile(newFileName);
            }
        }

より詳しい情報

私はこれをフィドルで分析しました。これは、ダウンロード用のExcelを提示することが期待される特定の要求/応答に対して私が見るものです。

ここに画像の説明を入力してください

このStackoverflowQ/ Aは、禁止アイコンの意味は、クライアントが応答を終了/中止していることを示しています

4

1 に答える 1

0

私はこの問題の解決策を見つけました。詳細はこのリンクに記載されているとおりです

このSOの質問には、何が起こっているのかを明確にする詳細とリソースが含まれています。基本的な問題は、IEバージョン8以下では、応答に次のヘッダーが表示された場合、SSL経由でファイルをダウンロードできないことです。Cache-control:no-cacheプラグマ:no-cache

これらのヘッダーを削除して、次のように置き換える必要があります。

Response.Headers.Set("Cache-Control", "private, max-age=0");
于 2013-01-07T08:51:39.303 に答える