KB3157016 – КОРЕКЦИЯ: RDL отчет, генериран програмно, не може да се изпълнява в SSRS

Отнася се за
SQL Server 2016 Developer - duplicate (do not use) SQL Server 2016 Enterprise - duplicate (do not use) SQL Server 2016 Enterprise Core - duplicate (do not use) SQL Server 2016 Standard - duplicate (do not use) SQL Server 2016 Service Pack 1

Симптоми

Имайте предвид сценария, описан по-долу:

  • Използвате услугите за отчет на SQL Server 2012, 2014 или 2016.
  • Инсталирате Microsoft SQL Server 2014 Service Pack 1, по-нова кумулативна актуализация на SQL Server 2012 SP3 или кумулативна актуализация на SQL Server 2016.
  • Изпълнявате RDL отчет, който се генерира програмно.

В този случай може да получите съобщение за грешка, подобно на следното:

Забележка

обработка! ReportServer_0-1!1328!14.01.2016-10:58:06:: e ГРЕШКА: Throwing Microsoft.ReportingServices.ReportProcessing.ReportProcessingException: , Microsoft.ReportingServices.ReportProcessing.ReportProcessingException: Възникна неочаквана грешка при обработката на отчета. ---> System.IO.IOException: Процесът не може да получи достъп до файла "C:\Users\ReportServer\AppData\Local\Temp\kpw4qafn.out", защото той се използва от друг процес.
в System.IO.__Error.WinIOError(Int32 errorCode, String maybeFullPath)
в System.IO.File.InternalDelete(String path, булев checkHost)
at Microsoft.ReportingServices.RdlExpressions.VBExpressionCodeProvider.CompileAssemblyFromDomWithRetry(CompilerParameters options, CodeCompileUnit compilationUnit)
в Microsoft.ReportingServices.RdlExpressions.ExprHostCompiler.InternalCompile(AppDomain compilationTempAppDomain, булева refusePermissions)
в Microsoft.ReportingServices.RdlExpressions.ExprHostCompiler.<>c__DisplayClass2.<Компилиране>на b__0()
в Microsoft.ReportingServices.Diagnostics.RevertImpersonationContext.<>c__DisplayClass1.<Изпълнение>b__0(състояние на обекта)
в System.Security.SecurityContext.runTryCode(Object userData)
at System.Runtime.CompilerServices.RuntimeHelpers.ExecuteCodeWithGuaranteedCleanup(TryCode code, CleanupCode backoutCode, Object userData)
в System.Security.SecurityContext.Run(SecurityContext, обратно повикване, състояние на обекта)
в 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)
в Microsoft.ReportingServices.ReportProcessing.ReportProcessing.CreateIntermediateFormat(PublishingContext reportPublishingContext)
--- Край на групово проследяване на вътрешни изключения ---

Забележка: Тази грешка също се регистрира в регистрационните файлове на услугите за отчети. 

Решение

Този проблем е коригиран в следната кумулативна актуализация за SQL Server:

     Сборна актуализация 5 за SQL Server 2016 RTM
    
     Сборна актуализация 2 за SQL Server 2016 SP1

     Сборна актуализация 9 за SQL Server 2014 Service Pack 1

Сборна актуализация 1 за SQL Server 2014 SP2

Сборна актуализация 8 за SQL Server 2012 SP3

Сборна актуализация 16 за SQL Server 2012 Service Pack 2 (SP2)

Сборна актуализация 2 за SQL Server 2016

За кумулативните актуализации за SQL Server

Всяка нова кумулативна актуализация за SQL Server съдържа всички актуални поправки и корекции на защитата, които са били включени в предишната кумулативна актуализация. Прегледайте последните кумулативни актуализации за SQL Server:

Последна сборна актуализация за SQL Server 2014

Последна сборна актуализация за SQL Server 2016

Последна кумулативна актуализация за SQL Server 2012 SP3

Последна кумулативна актуализация за SQL Server 2012 SP2

Състояние

Microsoft потвърждава, че това е проблем в продуктите на Microsoft, които са изброени в раздела „Важи за“.

Справки

Научете повече относно терминологията, която Microsoft използва за описване на актуализациите на софтуера.