2

レポートを PDF (または任意の形式) にエクスポートしようとすると、いくつかの問題が発生します。

Windows Server 2008 R2 ボックスの IIS 7.5 でホストされている asp.net MVC 3 Web サイトがあります。

この Web サイトでは、SQL Server Reporting Services を介してレポートを表示できます。

サーバー応答ヘッダーの削除IIS7で説明されているように、「サーバー」応答ヘッダーエントリを削除しようとするまで、これはすべて正常に機能し ます

レポートはレポート ビューアー コントロールで正常に表示されますが、レポートをエクスポートしようとすると例外がスローされ、レポートのエクスポートに失敗します。

さらに調査した結果、次の行がカスタム HTTP モジュールで問題を引き起こしていることが判明しました - context.PreSendRequestHeaders += OnPreSendRequestHeaders;

namespace StrongNamespace.HttpModules
{
    public class CustomHeaderModule : IHttpModule
    { 
        public void Init(HttpApplication context)
        {
            context.PreSendRequestHeaders += OnPreSendRequestHeaders;
        } 

        public void Dispose() { } 

        void OnPreSendRequestHeaders(object sender, EventArgs e)
        {
            HttpContext.Current.Response.Headers.Set("Server", "Box of Bolts");
        }
    }
}

メソッドが何もしない場合でも、レポートはエクスポートされません。カスタム モジュールはレポートと一緒に正常に動作し、イベントに何も添付されていない場合は正常にエクスポートされます。

イベント ログまたは SQL サーバー ログに有用なものはないようです。

返される例外は次のとおりです。

リモート ホストが接続を閉じました。エラー コードは 0x800704CD です。
\r\n \r\n で
System.Web.Hosting.IIS7WorkerRequest.RaiseCommunicationError(Int32 結果、Boolean throwOnDisconnect)\r\n \r\n at
System.Web.Hosting.IIS7WorkerRequest.ExplicitFlush()\r\n \r\n で
System.Web.HttpResponse.Flush(Boolean finalFlush)\r\n \r\n で
System.Web.HttpWriter.WriteFromStream(Byte[] データ、Int32 オフセット、Int32 サイズ)\r\n \r\n at
Microsoft.Reporting.WebForms.ReportDataOperation.StreamToResponse(ストリーム データ、HttpResponse 応答)\r\n \r\n at
Microsoft.Reporting.WebForms.ExportOperation.PerformOperation(NameValueCollection urlQuery, HttpResponse 応答)\r\n \r\n で
Microsoft.Reporting.WebForms.HttpHandler.ProcessRequest(HttpContext コンテキスト)\r\n \r\n で
System.Web.HttpApplication.CallHandlerExecutionStep.System.Web.HttpApplication.IExecutionStep.Execute()\r\n \r\n で
System.Web.HttpApplication.ExecuteStep(IExecutionStep step, Boolean& completedSynchronously)\r\n", "ClientDetails": "{\"UserAgent\":\"Mozilla/5.0 (互換性あり; MSIE 9.0; Windows NT 6.1; WOW64; Trident /5.0)\",\"RawUrl\":\"/Reserved.ReportViewerWebControl.axd?ReportSession=l1lavh2yccrfzaexali5xe55&Culture=2057&CultureOverrides=True&UICulture=1033&UICultureOverrides=True&ReportStack=1&ControlID=24751adc9c9f47a387f0c486dc27fb48&OpType=Export&FileName=tp&ContentDisposition=OnlyHtmlInline&Format=PDF

Urlscan は試してみるべき残りの唯一のオプションのようですが、他の誰かが同様の問題を経験したかどうかを確認したいと思いました。

サーバーヘッダーを削除するためのアドバイスや代替方法をいただければ幸いです。

ありがとう、マルコム

4

0 に答える 0