2


0

VSまたはIEから大きなSSRS 2008レポートを展開またはアップロードできない

これまでのところ、VS2008 / BIDSには2つのレポートがあります。 最初のものは1つのTablixを含み、約100kです。 2番目のものには、3つのTablix(tablices?)が含まれ、約257kです。 VSから小さなレポートを正常に展開でき、IEのレポートマネージャーからアップロードできます。 レポートマネージャーから表示/実行でき、ブラウザーからレポートサーバー(Webサービス)のURLに問題なくアクセスできます。 すべてがHTTPS経由で行われ、証明書に問題はありません。

大きいレポートでは、VSで約100秒後に「操作がタイムアウトしました」というエラーが表示されます。 IEからアップロードする際のエラーは、約130秒後に「基礎となる接続が閉じられました:送信時に予期しないエラーが発生しました」です。

RSReportServer.configファイルで、Authentication / EnableAuthPersistenceをtrueからfalseに変更してサービスを再起動しようとしましたが、それでもエラーが発生しました。 キー「SecureConnectionLevel」を2に設定しています。 これを0に変更してSSLをオフにすることはオプションではありません。 「MaxRequestBytes」という名前のレジストリキーをHKEY_LOCAL_MACHINE \ System \ CurrentControlSet \ Services \ HTTP \ Parametersに追加して5242880(5MB)に設定し、MSFTのJin Chenによるフォーラム投稿で提案されているようにHTTPおよびSRSサービスを再起動しました。

まだ大きなレポートをアップロードできません。 これはMS SQL 2008およびWS 2003にあります。 以下は、IEからアップロードしようとしたときの…​ \ Reporting Services \ LogFilesからのログファイルエントリの一部です。

library!WindowsService_0!89c!02/10/2010-07:57:57:: i INFO: Call to CleanBatch() ends
ui!ReportManager_0-1!438!02/10/2010-07:59:33:: e ERROR: The underlying connection was closed: An unexpected error occurred on a send.
ui!ReportManager_0-1!438!02/10/2010-07:59:34:: e ERROR: HTTP status code --> 500
-------Details--------
System.Net.WebException: The underlying connection was closed: An unexpected error occurred on a send.
---> System.IO.IOException: Unable to write data to the transport connection: An established connection was aborted by the software in your host machine.
---> System.Net.Sockets.SocketException: An established connection was aborted by the software in your host machine
   at System.Net.Sockets.Socket.MultipleSend(BufferOffsetSize[] buffers, SocketFlags socketFlags)
   at System.Net.Sockets.NetworkStream.MultipleWrite(BufferOffsetSize[] buffers)
   --- End of inner exception stack trace ---
   ...

1 Answer


6


私はこれを考え出したと思います。 「MaxRequestBytes」という名前のレジストリキーをHKEY_LOCAL_MACHINE \ System \ CurrentControlSet \ Services \ HTTP \ Parametersに追加することを記載した最大リクエストバイトの増加に関するブログエントリは、適切なサービスを再起動しました。 私はまだ問題を抱えていたので、解決策を探し続け、結局のところ、「MaxRequestBytes」をレジストリキーとしてではなく、DWORD値として追加する必要があります。 詳細については、http://support.microsoft.com/default.aspx/kb/820129 [IISのHttp.sysレジストリ設定]を参照してください。 MaxRequestLengthのデフォルト値は16384で、最大値は16777216(16 MB)です。 私は1048576(1 MB)に設定されています。

私が調べたもう1つのことは、C:\ Program Files \ Microsoft SQL Server \ MSRS10.SWA \ Reporting Services \ ReportServer \ web.configの<httpRuntimeのmaxRequestLength属性で、デフォルト値は4096 KB(4 MB)です。十分大きい。 参照:http://msdn.microsoft.com/en-us/library/e1f13641(VS.71).aspx [<httpRuntime> Element]。

最後に確認することは、HKEY_LOCAL_MACHINE \ SYSTEM \ CurrentControlSet \ Services \ Tcpip \ Parameters \ EnableTCPChimneyがすでに0に設定されていることです。

MaxRequestLengthレジストリを変更した後、別の理由でサーバーが再起動され、大きいレポートを含むすべてのレポートをすべてHTTPS経由でアップロードできるようになりました。