Sintomas
Considere o seguinte cenário:
-
Você usa SQL Server 2012, 2014 ou 2016 Reporting Services.
-
Instale o Microsoft SQL Server 2014 Service Pack 1, uma atualização cumulativa posterior do SQL Server 2012 SP3 ou uma atualização cumulativa do SQL Server 2016.
-
Você executa um relatório RDL gerado programaticamente.
Nesse cenário, você pode receber uma mensagem de erro semelhante à seguinte:
Processamento! ReportServer_0-1!1328!14/01/2016-10:58:06:: e ERROR: Lançamento de Microsoft.ReportingServices.ReportProcessing.ReportProcessingException: , Microsoft.ReportingServices.ReportProcessing.ReportProcessingException: Ocorreu um erro inesperado no Processamento de Relatórios. ---> System.IO.IOException: o processo não pode acessar o arquivo 'C:\Users\ReportServer\AppData\Local\Temp\kpw4qafn.out' porque ele está sendo usado por outro processo.
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)
em Microsoft.ReportingServices.RdlExpressions.ExprHostCompiler.InternalCompile(AppDomain compilationTempAppDomain, Boolean refusePermissions)
em Microsoft.ReportingServices.RdlExpressions.ExprHostCompiler.<>c__DisplayClass2.<Compilar>b__0()
em Microsoft.ReportingServices.Diagnostics.RevertImpersonationContext.<>c__DisplayClass1.<Run>b__0(Object state)
at System.Security.SecurityContext.runTryCode(Object userData)
at System.Runtime.CompilerServices.RuntimeHelpers.ExecuteCodeWithGuaranteedCleanup(TryCode code, CleanupCode backoutCode, Object userData)
em System.Security.SecurityContext.Run(SecurityContext securityContext, ContextCallback callback, Object state)
em Microsoft.ReportingServices.Diagnostics.RevertImpersonationContext.Run(ContextBody callback)
at Microsoft.ReportingServices.RdlExpressions.ExprHostCompiler.Compile(IExpressionHostAssemblyHolder expressionHostAssemblyHolder, AppDomain compilationTempAppDomain, Boolean refusePermissions, PublishingVersioning versioning versioning)
at Microsoft.ReportingServices.ReportPublishing.ReportPublishing.Phase3(ParameterInfoCollection& parameters, Dictionary'2& groupingExprCountAtScope)
em 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)
em Microsoft.ReportingServices.ReportProcessing.ReportProcessing.CompileOdpReport(PublishingContext reportPublishingContext, PublishingErrorContext errorContext, String& reportDescription, Parâmetros string& reportLanguage, ParameterInfoCollection&, DataSourceInfoCollection& dataSources, DataSetInfoCollection& sharedDataSetReferences, UserLocationFlags& userReferenceLocation, ArrayList& dataSetsName, boolean& hasExternalImages, boolean& hasHyperlinks, Byte[]& dataSetsHash)
em Microsoft.ReportingServices.ReportProcessing.ReportProcessing.CreateIntermediateFormat(PublishingContext reportPublishingContext)
--- fim do rastreamento de pilha de exceção interna ---
Observação Este erro também é registrado nos logs Reporting Services dados.
Resolução
Esse problema foi corrigido na seguinte atualização cumulativa para SQL Server:
Atualização Cumulativa 5 para SQL Server 2016 RTM
Atualização Cumulativa 2 para SQL Server 2016 SP1
AtualizaçãoCumulativa 9 para SQL Server 2014 Service Pack 1
Atualização Cumulativa 1 para SQL Server 2014 SP2
Atualização cumulativa 8 para SQL Server 2012 SP3
Atualização cumulativa 16 para SQL Server 2012 Service Pack 2 (SP2)
Cada nova atualização cumulativa para SQL Server contém todos os hotfixes e todas as correções de segurança que foram incluídas na atualização cumulativa anterior. Confira as atualizações cumulativas mais recentes para SQL Server:
Atualização cumulativa mais recente para SQL Server 2014
Atualização cumulativa mais recente para SQL Server 2016
Atualização cumulativa mais recente do SQL Server 2012 SP3
Status
A Microsoft confirmou que este é um problema nos produtos Microsoft listados na seção "Aplicável a".
Referências
Saiba mais sobre a terminologia que a Microsoft usa para descrever atualizações de software.