私のアプリケーションは ReportViewer WebControl を使用しています。私はSSRSを使用していません.SQLデータソースにバインドされたReportViewerだけです。
非常に大きなレポートを実行すると、レポートはブラウザーで問題なく表示されますが、ツールバー コントロールをクリックして PDF または XLS にエクスポートすると、Request timed out
約 2 分後にエラー ページが表示されます。
Server Error in '/' Application.
Request timed out.
Description: An unhandled exception occurred during the execution of the current web request. Please review the stack trace for more information about the error and where it originated in the code.
Exception Details: System.Web.HttpException: Request timed out.
Source Error:
An unhandled exception was generated during the execution of the current web request. Information regarding the origin and location of the exception can be identified using the exception stack trace below.
Stack Trace:
[HttpException (0x80004005): Request timed out.]
私はこれをしばらく調査してきましたが、見つけた最良のリソースは次の 2 ページです。
Reporting Services レポートのタイムアウト
最初のリンクは興味深いものですが、実際の回答はありません。また、クエリ文字列に Timeout パラメーターが表示されません (以下を参照)。
2番目もあまり役に立ちません。まず第一に、私はレポート サーバーを使用していないため、説明されている方法で個々のレポートのタイムアウトを設定することはできません。2 つ目は、アプリケーション全体のタイムアウトを増やしたくないということです。結局のところ、それには理由があります。Reserved.ReportViewerWebControl.axd
これはエラーの原因となっているパスであるため、レポートを pdf などにエクスポートすると、 への直接リンクが開きますReserved.ReportViewerWebControl.axd
。私の場合、これは次のとおりです。
Reserved.ReportViewerWebControl.axd?Culture=2057&CultureOverrides=True&UICulture=2057&UICultureOverrides=True&ReportStack=1&ControlID=cf991107384446f8859b148bc815745b&Mode=true&OpType=Export&FileName=InvoicesReport&ContentDisposition=OnlyHtmlInline&Format=PDF
そこで、web.config でこの特定のハンドラーの executionTimeout を変更することにしました。
<location path="Reserved.ReportViewerWebControl.axd"> <system.web> <!-- Set execution timeout to 10 minutes, default is 110 seconds --> <httpRuntime executionTimeout="600"/> </system.web> </location>
しかし、これにより、「場所要素は使用されていません。Reserved.ReportViewerWebControl.axd にプロジェクト項目が見つかりません。パス C:\...Reserved.ReportViewerWebControl.axd は fuond ではありません」と表示されます。
Reserved.ReportViewerWebControl.axd は実際にはファイルとして存在しないため、これは理にかなっています。
どうすればこれを機能させることができますか?
編集
ReportViewer の v11 を使用しています。
<httpHandlers>
<add path="Reserved.ReportViewerWebControl.axd" verb="*" type="Microsoft.Reporting.WebForms.HttpHandler, Microsoft.ReportViewer.WebForms, Version=11.0.0.0, Culture=neutral, PublicKeyToken=89845dcd8080cc91"
validate="false" />
</httpHandlers>