2012-08-22 3 views
1

Ive는 App Pool 재활용 전후의 AppDomain.CurrentDomain.GetAssemblies를 방금 확인한 바 있습니다. 왜 일부 86 어셈블리가 첫 번째 인스턴스에서로드 된, 즉 내가 애플 리케이션을 배포 한 다음 리사이클 후에로드됩니다 28 이해하지 않습니다.응용 프로그램 풀 재활용 중에 어셈블리가 응용 프로그램 도메인에서 언로드됩니까?

어떤 일이 벌어 질 수 있습니까?

+0

입니까? – bUKaneer

+0

전용 응용 프로그램 풀 나는 특별히 문제의 웹 사이트를위한 앱 풀을 만들었습니다. 문제가 해결 될 때 이전에 약 5 개의 다른 웹 사이트와 응용 프로그램 풀을 공유했지만 전용 응용 프로그램 풀을 사용해도 해결책이 제공되지 않습니다. – brumScouse

+1

문제를 해결할 방법이 있습니까? 예 : 공유 할 수 있습니까? – pinki

답변

1

IIS의 known behavior입니다. IIS 재활용 후 어셈블리는 필요할 때로드됩니다.

사용 가능한 모든 어셈블리를 가져 오려면 System.Web.Compilation.BuildManager 유형의 GetReferencedAssemblies 메서드를 사용할 수 있습니다. 예를 들어

: 그것은 전용 또는 공유 응용 프로그램 풀

IEnumerable<Assembly> assemblies = AppDomain.CurrentDomain.GetAssemblies(); 
if (HostingEnvironment.InClientBuildManager) 
{ 
    assemblies = assemblies.Union(BuildManager.GetReferencedAssemblies().Cast<Assembly>()); 
} 
관련 문제