2011-04-19 3 views
7

상황에 따라 부울 버그가 수정되어 영향을받는 DLL을 배포하려고합니다. 그들은 IIS를 중단하고, iis 디렉토리의/bin 폴더에있는 dll을 웹 사이트의 DLL로 바꾼 새로운 디렉토리로 바꾸고 iis를 다시 시작했습니다. 서버가 여러 대 있지만 방금 시도한 서버로 변경했습니다. 그들은 여전히 ​​해당 서버의 이벤트 로그에서 동일한 오류를보고 있습니다. 스택 추적을 보면 이전 dll을 실행 중임을 알 수 있습니다.웹 사이트에서 캐시 된 dll을 변경 한 후 실행 중입니다.

그들은 GAC를 확인했지만 거기에는 표시되지 않습니다.

나는 그들에게 올바른 새로운 dll을 준 것을 확인하기 위해 반사체가있는 dll을 검사했다.

이것은 asp.net 2.0 웹 사이트이며 2003 년 서버입니다. 원래 배포 된 방법은 확실하지 않지만 C : \ Windows \ Microsoft.NET \ Framework64 \ v2에있는 이전 DLL의 복사본이 있습니다. .0.50727 \ Temporary ASP.NET Files \ NAME_services ######### \ assembly \ dl3 ####################### \ 및 D : \ xxxx \ Sites \ NAME \ Services \ obj \ Release에 있습니다. 이것들 중 하나를 사용하거나 오래된 것을 만들거나 메모리에 캐싱 만 할 수 있습니까?

+0

버그가 어디 있었습니까? 그것은 aspx 페이지 또는 어딘가에 코드에 있었나요? – Aliostad

+0

그것은 코드에 있었고, 나는 dll의 diss 어셈블리에서 수정을 볼 수 있습니다. – dwidel

답변

7

임시 asp.net 폴더 내용을 누락 시키십시오. 그러나 업데이트가 자동으로 컴파일되지 않은 이유를 잘 모릅니다.

+0

이러한 종류의 배치가 자동으로 컴파일됩니까? 그렇다면 문제가 될 수 있습니다. 방금 출처가 아닌 dll을 게시했습니다. – dwidel

+0

@dwidel, 때로는 Asp.Net goofs 그냥 파일을 임시 Asp.Net 파일 폴더로 복사하지 않습니다. 그것을 날려 버리면 그것이 스스로 해결된다는 것을 확신 할 수 있습니다. – Andy

+0

@dwidel 절대 소스를 서버에 두지 마십시오. @ 앤디가 맞습니다. - 가끔씩 일어납니다. 고맙게도 그것은 드물다. –

0

업데이트를 배포하기 위해 IIS를 중지 할 필요없이 복사 만하면됩니다.

또한 DLL 만 복사했지만 수정 사항은 .aspx 파일에 있던 경우 나타나지 않습니다. 정말로 전체 배포를 수행해야합니다.

+0

수정 프로그램이 dll에 확실히 있습니다. 나는 반사경을 사용하여 dll을 분해하고 수정 사항을 볼 수 있습니다. – dwidel

+2

놀랍게도 많은 경우에 이것은 작동하지 않습니다. 응용 프로그램 개발 방법에 따라 다릅니다. IIS는 파일을 캐시하고 때로는 임시 파일을 부 풀릴 필요가 있습니다. –

1

우리는 같은 문제가 있었지만 사소한 합병증이 있었기 때문에 우리는 "많은 임시 사이트를 지우고"IIS를 다시 시작하는 것이 많은 선택 사항이 아니 었습니다. 그래서 우리는 무엇을 새로 고침해야하는지 더 선별 적으로해야했습니다.

우리의 QA 기계에서 ... "C : \ Windows \ Microsoft.NET \ Framework \ v4.0.30319 \ Temporary ASP.NET Files" 파일 탐색기에서 파일 이름 부분을 검색했습니다. 석방하려고합니다. 파일은 C : \ Windows \ Microsoft.NET \ Framework \ v4.0.30319 \ Temporary ASP.NET Files \ root \ 4503212x \ ad95664x와 같은 폴더에서 발견되어 응용 프로그램 풀을 중지하고 폴더를 삭제 한 다음 다시 시작했습니다. 모두는 그 때 배치되었다 - 중대하다!

하지만 .... 우리는 프로덕션에 배치하는 데 동일한 문제가 있었고 위는 효과가 없었습니다.

요약하자면 QA 앱 풀은 "32 비트를 사용하도록 설정"되어 있지만 프로덕션 임시 파일은 "C : \ Windows \ Microsoft.NET \ Framework64 \ v4.0.30319 "대신 (\ Framework \ 대신 \ Framework64 \).

임시 파일 지우기가 작동하지 않는 경우 프레임 워크를 다시 확인하거나 C : \ Windows \ Microsoft.NET 폴더 수준에서 새로 고칠 파일을 찾습니다. 너는 놀랄지도 모른다.

관련 문제