증상
다음과 같은 경우를 생각해 볼 수 있습니다.
-
SQL Server 2012, 2014 또는 2016 Reporting Services 사용합니다.
-
Microsoft SQL Server 2014 서비스 팩 1, SQL Server 2012 SP3의 이후 누적 업데이트 또는 SQL Server 2016의 누적 업데이트를 설치합니다.
-
프로그래밍 방식으로 생성된 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)
at System.IO.File.InternalDelete(String path, Boolean checkHost)
at Microsoft.ReportingServices.RdlExpressions.VBExpressionCodeProvider.CompileAssemblyFromDomWithRetry(CompilerParameters options, CodeCompileUnit compilationUnit)
에서 Microsoft.ReportingServices.RdlExpressions.ExprHostCompiler.InternalCompile(AppDomain compilationTempAppDomain, Boolean refusePermissions)
Microsoft.ReportingServices.RdlExpressions.ExprHostCompiler.<>c__DisplayClass2.<Compile>b__0()
에서 Microsoft.ReportingServices.Diagnostics.RevertImpersonationContext.<>c__DisplayClass1.<Run>b__0(Object state)
에서 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& parameters, Dictionary'2& groupingExprCountAtScope)
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 2014 서비스 팩 1용 SQL Server 2016 SP1
누적 업데이트 9용 SQL Server2016 RTM
누적 업데이트 2의 SQL Server:
누적 업데이트 5에 대한 다음 누적업데이트에서 해결되었습니다.
SQL Server 2014 SP2용 누적 업데이트 1
SQL Server 2012 SP3용 누적 업데이트 8
SQL Server 대한 각각의 새로운 누적 업데이트에는 모든 핫픽스 및 이전 누적 업데이트에 포함된 모든 보안 수정 사항이 포함됩니다. SQL Server 대한 최신 누적 업데이트를 확인하세요.
SQL Server 2014
의 최신 누적 업데이트 SQL Server 2016
의 최신 누적 업데이트 SQL Server 2012 SP3에 대한 최신 누적 업데이트
상태
Microsoft는 "적용 대상" 절에 나열한 제품에서 이 문제를 확인했습니다.
참고 자료
Microsoft가 소프트웨어 업데이트를 설명하는 데 사용하는 용어에 대해 알아보세요.