Winforms 응용 프로그램에서 Azure AppFabric 캐싱을 사용할 때 "서버 컬렉션은 비워 둘 수 없습니다." 오류 발생

최초 문서 게시일: 2011년 10월 27일 목요일

최근 Windows Azure의 AppFabric 캐싱 기능을 사용하면서 특정 문제를 경험했는데, 같은 문제를 겪은 분들이 의외로 꽤 많더군요. Windows Azure는 이전에 Velocity로 알려졌던 캐싱 메커니즘의 릴리스 버전입니다. Windows Azure에서 사용하는 캐싱 팩터리에 문제가 있을 때 가장 흔하게 표시되는 오류 메시지에는 "서버 컬렉션은 비워 둘 수 없습니다."라는 줄이 포함되어 있습니다. 이 오류는 흔히 발생하지만 추적하기가 꽤 어렵습니다. 또한 Windows Azure의 경우에는 컴파일된 독립 실행형 어셈블리에서 캐시를 사용하고 있었는데, Azure 작업자 역할에서 해당 어셈블리를 호출하면 오류가 전혀 발생하지 않았습니다. 그러나 어셈블리에 대한 참조를 winforms 테스트 응용 프로그램에 추가한 다음 응용 프로그램을 실행하자 오류가 발생했습니다.

여러 차례의 시행 착오를 거친 끝에 마침내 문제를 파악할 수 있었습니다. 문제는, winforms 응용 프로그램이 캐싱 클래스를 직접 호출하지는 않았지만 호스트 프로세스라는 것이었습니다. 즉, 작업자 역할 응용 프로그램의 모든 캐시 구성 항목을 winforms 응용 프로그램의 app.config에 추가해야 했습니다. 구성 항목을 추가한 후에는 오류가 발생하지 않았습니다.

이러한 유형의 시나리오는 흔히 볼 수 있지만, 이 오류는 추적하기가 까다로우므로 비슷한 상황이 발생하는 경우 이 블로그의 정보가 도움이 되었으면 합니다.

이 문서는 번역된 블로그 게시물입니다. 원본 문서는 Server Collection Cannot Be Empty Error When Using Azure AppFabric Caching in Winforms Application을 참조하십시오.