[ASP.NET] 파일순환참조는 허용되지 않습니다.
2015. 3. 13. 14:57ㆍWEB/ASP.NET WebForm
ASP.NET Web Form 개발 중 ‘circular file references are not allowed’라는 오류가 발생하는 경우, 원인과 해법은 다음과 같습니다.
원인
ASP.NET Web Form은 폴더 별로 DLL 하나씩 생성합니다. 따라서 다음과 같이 구성할 때 DLL간 순환참조가 발생하게 됩니다.
/Folder1/Contorl1.ascx –> Folder2/ControlA.ascx 참조
/Folder2/Control2.ascx –> Folder1/ControlB.ascx 참조
위와 같이 구성하게 되면 Folder1 dll은 Folder2 dll을 참조하게 되고, Folder2 dll은 Folder1 dll을 참조하게 되어 파일순환참조가 발생하게 됩니다.
해결방법
- 폴더 구성을 재구성합니다. 복잡한 참조관계를 가지지 않도록 단순화하는 것이 필요합니다. 필요이상의 UserControl로 세분화하지 않습니다.
- 아래와 같이 web.config에서 batch=”false”로 설정합니다. 그러면 각 Control, Page 별로 DLL이 생성되게 되어 문제가 해결될 수 있습니다. 반면에 성능은 다소 떨어지게 되므로 가급적 권장되지 않습니다. 개발 시에만 false로 설정하고, 호스팅 시 true로 설정하는 등으로 사용하는 방법이 있습니다.
'WEB > ASP.NET WebForm' 카테고리의 다른 글
[WebForm] 파일 다운로드 구현 (파일명 깨짐 해결) (0) | 2018.11.09 |
---|