문의자
iis 서비스 종료 명령어 실행 가능한가요??

질문
-
iis의 특정 서비스를 올려둔 후 사용중 해당 서비스와 관련한 dll들을 변경해 줘야 할 일이 생겼는데
iis의 서비스가 실행중일 때는 파일을 덮어쓰기 못하게 하네요...
서비스를 종료후 파일을 덮어쓰고 다시 서비스 시작을 시켜주려고 하는데
사용자가 서비스 이용 시 cmd명령어를 통해 종료 후 덮어쓰기 해주고 다시 시작하게 해줬는데 명령어가
제대로 실행이 안된건지 iis서비스를 새로고침할 시에는 내려갔다 다시 시작한걸로 보이는데 덮어쓰기는 안되어 있네요...
혹시 확실하게 하는 방법이 있을까요?? 문제점이 뭔지 알고 싶습니다...
모든 응답
-
"사용자"가 서버 관리자를 의미하는 건가요?
어쨌든, 다음의 순서로 업데이트하면 "당연히" 정상적으로 반영이 되어야 합니다.
C:\temp> iisreset /stop
...파일복사...
C:\temp> iisreset /start
참고로, iisreset의 경우에는 IIS의 전체 서비스가 내려갔다 올라가는 것이므로, 특정 웹 사이트의 바이너리만 업데이트하고 싶을 때는 다음의 글을 참고하세요.
How to Start or Stop an Application Pool IIS 7 | HostAdvice
; https://hostadvice.com/how-to/how-to-start-or-stop-an-application-pool-iis-7/ -
외부, 내부 pc 둘다 안되네요..
현재 상황이 WCF를 통해서 외부,내부에서 서비스 호출 시 따로 만들어둔 프로그램을 통해서
iis 종료 후 파일 덮어쓰기를 수행하고 iis를 다시 실행시키고 있습니다.
사용하려는 iis 서비스에 사용자가 안 붙어있을 시에는 정상적으로 잘 되지만
사용자가 사용중일 경우 문제가 생겨서 위와 같은 방법으로 바꿔봤는데 안되네요...
iisreset /stop을 한 순간부터 iis가 이상해져서 내려가지도 올라가지도 않네요... 에러메세지만 띄우고요...
혹시 사용중인 iis서비스 dll들을 덮어쓰기 하는 방법은 없나요??
-
iisreset은 강제 리셋입니다. 따라서 사용자가 붙어 있어도 대상 w3wp.exe가 지정된 시간 내에 종료하지 않으면 강제로 종료합니다.
혹시 그 안 된다는 오류 메시지가 뭔가요?
그리고 그런 식이라면, iisreset 후 부가적으로 taskkill.exe를 이용해 실행 중인 w3wp.exe를 그냥 강제로 종료해도 무방합니다.
--------------------
참고로, 사용 중인 dll들은 덮어쓰기 할 수 없습니다. 우회적으로 기존 dll들의 이름을 rename 시키는 것은 가능하므로 그렇게 해서 덮어 쓰기 효과를 볼 수는 있습니다.