現象
たとえば次のようなシナリオを考えてみます。
- SQL Server 2012、2014、または 2016 の Reporting Services を使用している。
- Microsoft SQL Server 2014 Service Pack 1、それ以降の累積的な更新プログラムである SQL Server 2012 SP3、または SQL Server 2016 の累積的な更新プログラムをインストールします。
- プログラムで生成される RDL レポートを実行する。
このシナリオでは、次のようなエラーメッセージが表示されることがあります。
注
processing!ReportServer_0-1!1328!01/14/2016-10:58:06:: e エラー: Microsoft.ReportingServices.ReportProcessing.ReportProcessingException をスローしています: , Microsoft.ReportingServices.ReportProcessing.ReportProcessingException: レポート処理で予期しないエラーが発生しました。 ---> System.IO.IOException: 別のプロセスで使用されているため、プロセスはファイル 'C:\Users\ReportServer\AppData\Local\Temp\kpw4qafn.out' にアクセスできません。
at System.IO.__Error.WinIOError(Int32 errorCode, String maybeFullPath)
at System.IO.File.InternalDelete(String path, Boolean checkHost)
at Microsoft.ReportingServices.RdlExpressions.VBExpressionCodeProvider.CompileAssemblyFromDomWithRetry(CompilerParameters options, CodeCompileUnit compilationUnit)
at Microsoft.ReportingServices.RdlExpressions.ExprHostCompiler.InternalCompile(AppDomain compilationTempAppDomain, Boolean refusePermissions)
at Microsoft.ReportingServices.RdlExpressions.ExprHostCompiler.<>c__DisplayClass2.<compile>b__0()
at Microsoft.ReportingServices.Diagnostics.RevertImpersonationContext.<>c__DisplayClass1.<実行>b__0(オブジェクトの状態)
at System.Security.SecurityContext.runTryCode(Object userData)
at System.Runtime.CompilerServices.RuntimeHelpers.ExecuteCodeWithGuaranteedCleanup(TryCode code, CleanupCode backoutCode, Object userData)
at System.Security.SecurityContext.Run(SecurityContext securityContext, ContextCallback callback, Object state)
at Microsoft.ReportingServices.Diagnostics.RevertImpersonationContext.Run(ContextBody callback)
at Microsoft.ReportingServices.RdlExpressions.ExprHostCompiler.Compile(IExpressionHostAssemblyHolder expressionHostAssemblyHolder, AppDomain compilationTempAppDomain, Boolean refusePermissions, PublishingVersioning versioning)
at Microsoft.ReportingServices.ReportPublishing.ReportPublishing.Phase3(ParameterInfoCollection& parameters, Dictionary'2& groupingExprCountAtScope)
at Microsoft.ReportingServices.ReportPublishing.ReportPublishing.InternalCreateIntermediateFormat(Stream definitionStream, String& description, String& language, ParameterInfoCollection& parameters, DataSourceInfoCollection& dataSources, DataSetInfoCollection& sharedDataSetReferences, UserLocationFlags& userReferenceLocation, ArrayList& dataSetsName, Boolean& hasExternalImages, Boolean& hasHyperlinks, Byte[]&dataSetsHash)
at Microsoft.ReportingServices.ReportProcessing.ReportProcessing.CompileOdpReport(PublishingContext reportPublishingContext, PublishingErrorContext errorContext, String& reportDescription, String& reportLanguage, ParameterInfoCollection& parameters, DataSourceInfoCollection& dataSources, DataSetInfoCollection& sharedDataSetReferences, UserLocationFlags& userReferenceLocation, ArrayList& dataSetsName, Boolean& hasExternalImages, Boolean& hasHyperlinks, Byte[]& dataSetsHash)
at Microsoft.ReportingServices.ReportProcessing.ReportProcessing.CreateIntermediateFormat(PublishingContext reportPublishingContext)
--- 内部例外スタック トレースの終わり ---
注: このエラーは Reporting Services のログにも記録されます。
解決策
この問題は、次の SQL Server の累積的な更新プログラムで修正されました。
SQL Server 2016 RTM の累積的な更新プログラム 5
SQL Server 2016 SP1 の累積的な更新プログラム 2
SQL Server 2014 Service Pack 1 の累積的な更新プログラム 9
SQL Server 2014 SP2 の累積的な更新プログラム 1
SQL Server 2012 SP3 の累積的な更新プログラム 8
SQL Server 2012 Service Pack 2 (SP2) の累積的な更新プログラム 16
SQL Server 2016 の累積的な更新プログラム 2
SQL Server 用の累積的な更新プログラムについて
SQL Server 用の新しい累積的な更新プログラムには、以前の累積的な更新プログラムに含まれていたすべての修正プログラムとすべてのセキュリティ修正プログラムが含まれています。 SQL Server の最新の累積的な更新プログラムを確認してください。
SQL Server 2014 の最新の累積的な更新プログラム
SQL Server 2016 の最新の累積的な更新プログラム
SQL Server 2012 SP3 の最新の累積的な更新プログラム
SQL Server 2012 SP2 の最新の累積的な更新プログラム
状態
Microsoft は、これが "適用対象" セクションに記載されている Microsoft 製品の問題であることを確認しました。
参考資料
マイクロソフトでソフトウェア更新プログラムの説明に使用する用語集を参照してください。