문제

GAC에 DLL을 다시 설치하려고하는데 모든 것이 잘 작동하는 것 같지만 여기에 액세스하는 웹 애플리케이션은 여전히 이전 DLL을 사용하는 것 같습니다.

이전 DLL은 사소한 수정만으로 새 DLL과 동일한 버전이므로 50 개의 서로 다른 사이트에서 사용되므로 버전을 변경 한 다음 web.config에서 참조를 변경하는 것은 좋지 않습니다 .em> 솔루션.

IIS 서버 또는 작업자 프로세스를 다시 시작하는 것은 옵션이 아닙니다. 계속해서 실행해야하는 50 개의 사이트가 이미 실행 중이기 때문입니다.

내가 뭘 잘못하고 있는지 또는이 상황을 해결하기 위해 내가 무엇을 할 수 있는지 아는 사람이 있나요?

도움이 되었습니까?

해결책

AFAIK, 업데이트 된 DLL에 대한 새로운 참조를 얻으려면 IIS를 다시 시작해야합니다.가장 좋은 방법은 트래픽이 적은 시간에 재설정을 수행하는 것입니다.로드 밸런싱을 사용하여 여러 서버를 실행하는 경우 모든 연결이 닫힐 때까지 새 연결이 한 서버에 닿지 않도록 할 수 있습니다.그런 다음 DLL을 업데이트하고 IIS를 다시 시작한 다음 서버를 연결 풀로 다시 가져옵니다.최종 사용자에게 눈에 띄는 다운 타임없이 각 서버에 대해 반복합니다.

다른 팁

응용 프로그램 풀에 대한 참조를 작성하지 않았으므로 이전 버전의 IIS를 사용한다고 가정하겠습니다.이 경우 DLL을 참조하는 각 사이트의 모든 DLL을 "접촉"해야합니다.

문제는 코드가 이미로드되어 있으며 애플리케이션을 다시로드 할 수있는 비 간섭 적 방법을 찾아야한다는 것입니다.앱 풀을 재활용하는 것이이를 수행하는 효과적인 방법입니다.앱 풀이없는 이전 IIS를 사용하는 경우 / bin / 폴더 또는 web.config 파일에서 마지막으로 수정 된 파일을 업데이트하면 다른 사이트에 영향을주지 않고 애플리케이션이 다시로드됩니다.

그러므로 위의 작업을 수행하는 스크립트가 필요합니다.모든 / bin 응용 프로그램 디렉토리에있는 DLL의 마지막 수정 사항을 업데이트하기 만하면됩니다.

라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top