ユーザーからのリクエストを受け取り、SQLServerのデータをRS2005経由でExcelにエクスポートするac#Webアプリがあります。コードは次のようになります。
ReportExecution2005.ReportExecutionService rsExec = new ReportExecution2005.ReportExecutionService();
// set all params here...
rsExec.Timeout = 1800000; //30 mins
s.Start(); // stopwatch start
result = rsExec.Render(format, null, out extension, out encoding, out mimeType, out warnings, out streamIDs);
s.Stop();// stopwatch stop
問題は、リクエストに2分以上かかる場合(シミュレートするために、ストアドプロシージャに「待機遅延 '00:04:00'」がある)、.Render()メソッドが2分後にデータなしで戻ることです。ストアドプロシージャの遅延を削除するとデータが返されるため、渡したパラメータには有効なデータがあります。しかし、遅延を追加すると、Render()メソッドはデータなしで戻ります。ストアドプロシージャの遅延後にデータ全体を取得することを期待しています。
これはReportingServicesに関連しているとは思いません。同じデータでサブスクリプションを作成すると、レポートが必要な限り実行され、データが返されるため、同じレポートが正常に機能するからです。タイムアウト例外をスローしていません。通常は約2分4秒で動作を停止し、データは返されません。誰かがこれについて何か考えを持っていますか?
前もって感謝します。
ベン