증상
다음 시나리오를 고려하세요.
- 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 오류: Microsoft.ReportingServices.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)
Microsoft.ReportingServices.RdlExpressions.VBExpressionCodeProvider.CompileAssemblyFromDomWithRetry(CompilerParameters options, CodeCompileUnit compilationUnit)에서
at Microsoft.ReportingServices.RdlExpressions.ExprHostCompiler.InternalCompile(AppDomain compilationTempAppDomain, Boolean refusePermissions)
Microsoft.ReportingServices.RdlExpressions.ExprHostCompiler에서 확인할 수 있습니다.<>c__DisplayClass2.<Compile>b__0()
Microsoft.ReportingServices.Diagnostics.RevertImpersonationContext에서 확인할 수 있습니다.<>c__DisplayClass1.<실행>b__0(개체 상태)
위치: System.Security.SecurityContext.runTryCode(Object, userData)
System.Runtime.CompilerServices.RuntimeHelpers.ExecuteCodeWithGuaranteedCleanup(TryCode code, CleanupCode backoutCode, Object userData)에서
at System.Security.SecurityContext.Run(SecurityContext, securityContext, securityContext, callback, Object state)
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, 문자열& 설명, 문자열& 언어, ParameterInfoCollection& 매개 변수, DataSourceInfoCollection& dataSources, DataSetInfoCollection& sharedDataSetReferences, UserLocationFlags& userReferenceLocation, ArrayList& dataSetsName, 부울& hasExternalImages, 부울& hasHyperlinks, Byte[]& dataSetsHash)
at Microsoft.ReportingServices.ReportProcessing.ReportProcessing.CompileOdpReport(PublishingContext, reportPublishingContext, PublishingErrorContext, errorContext, reportDescription& 문자열, reportLanguage& 문자열, ParameterInfoCollection& 매개 변수, DataSource& DataSourceInfoCollection, sharedDataSetReferences& DataSetInfoCollection, userReferenceLocation& UserLocationFlags, dataSetsName& ArrayList, boolean& hasExternalImages, boolean& hasHyperlinks, Byte[]& dataSetsHash)
위치 Microsoft.ReportingServices.ReportProcessing.ReportProcessing.CreateIntermediateFormat(PublishingContext, reportPublishingContext)
--- 내부 예외 스택 추적 끝 ---
참고: 이 오류는 Reporting Services 로그에도 기록됩니다.
해결 방법
이 문제는 SQL Server에 대한 다음 누적 업데이트에서 해결되었습니다.
SQL Server 2016 RTM용 누적 업데이트 5
SQL Server 2016 SP1용 누적 업데이트 2
SQL Server 2014 서비스 팩 1용 누적 업데이트 9
SQL Server 2014 SP2용 누적 업데이트 1
SQL Server 2012 SP3용 누적 업데이트 8
SQL Server 2012 SP2(서비스 팩 2)용 누적 업데이트 16
SQL Server의 누적 업데이트 정보
SQL Server에 대한 각각의 새로운 누적 업데이트에는 이전 누적 업데이트에 포함된 모든 핫픽스와 모든 보안 수정 사항이 포함되어 있습니다. SQL Server에 대한 최신 누적 업데이트를 확인하세요.
SQL Server 2012 SP3용 최신 누적 업데이트
SQL Server 2012 SP2용 최신 누적 업데이트
상태
Microsoft에서 이는 "적용 대상" 섹션에 나열된 Microsoft 제품에서의 문제임을 확인했습니다.
참조 자료
Microsoft에서 소프트웨어 업데이트를 설명하는 데 사용하는 용어에 대해 알아보세요.