症状
请考虑以下情况:
-
使用 SQL Server 2012、2014 或 2016 Reporting Services。
-
安装 Microsoft SQL Server 2014 Service Pack 1、SQL Server 2012 SP3 的后续累积更新或 2016 SQL Server累积更新。
-
运行以编程方式生成的 RDL 报表。
在此方案中,可能会收到如下所示的错误消息:
处理!ReportServer_0-1!1328!01/14/2016-10:58:06:: e ERROR: Throwing 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)
在 System.IO.File.InternalDelete (字符串路径中,布尔 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)
在 System.Security.SecurityContext.Run (SecurityContext securityContext、ContextCallback 回调、对象状态)
at Microsoft.ReportingServices.Diagnostics.RevertImpersonationContext.Run (ContextBody 回调)
at Microsoft.ReportingServices.RdlExpressions.ExprHostCompiler.Compile (IExpressionHostAssemblyHolder expressionHostAssemblyHolder, AppDomain compilationTempAppDomain, Boolean refusePermissions, PublishingVersioning versioning)
at Microsoft.ReportingServices.ReportPublishing.ReportPublishing.Phase3 (ParameterInfoCollection&参数,Dictionary'2& groupingExprCountAtScope)
at Microsoft.ReportingServices.ReportPublishing.ReportPublishing.InternalCreateIntermediateFormat (Stream definitionStream, String& description, String& language, ParameterInfoCollection& 参数, 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
累积更新 2 的累积更新 5(适用于 SQL Server 2016 SP1
累积更新 9,适用于 SQL Server 2014 Service Pack 1)中修复了此问题
SQL Server的每个新的累积更新都包含上一个累积更新中包含的所有修补程序和所有安全修补程序。 查看SQL Server的最新累积更新:
SQL Server 2014
的最新累积更新SQL Server 2016
的最新累积更新SQL Server 2012 SP3 的最新累积更新
状态
Microsoft 已确认这是在“适用范围”部分中列出的 Microsoft 产品存在的问题。
参考
了解 Microsoft 用于描述软件更新的术语。