출처 : http://kaizer.co.kr/5

현재 한대의 서버에
 Virtual Host로 여러 사이트가 운영 중이다.

한대의 서버 자원으로 여러 사이트를 운용하므로 자원 낭비를 막을 수는 있지만 장애발생시
원인을 파악하는 데는 많은 시간이 필요로 하는 단점이 생기게 됩니다
.

이런 단점을 보완하고자 사이트 별 자원을 별도로 관리해 줌으로써 장애시 문제가 되는 프로세스를 빠른
시간 안에 파악 대처할 수가 있습니다
.

 

1.     IIS 기본셋팅

. 시작 à 프로그램 à 관리도구 à 인터넷정보 서비스관리

 

사용자 삽입 이미지

        . 호스트네임 à 응용프로그램폴 선택

-         DefaultAppPool IIS를 셋팅하면 기본적으로 생성되는 폴이다.

-         별도의 추가나 수정을 하지 않는다면 작업관리자 창에 아래와 같이 단일 프로세스를 사용하게 된다.

 


iis6.0 에서는 HTTP프로토콜 스택을 커널단에서 처리하고,
각 사이트 마다 요청을 별도의 응용프로그램풀로 처리를 합니다
.
이 역할을 w3wp(워커프로세스)가 해줍니다

 

사용자 삽입 이미지

☞ 기본셋팅만으로 IIS을 운영한다면 여러 사이트가 기본폴에 등록되고 위에 작업관리자
창에서 처럼
 w3wp.exe하나의 프로세스사용으로 문제가 되는 사이트를 찾기는 힘들어지게 된다.

 

        . 폴 추가하기.

-         새로만들기 à 응용 프로그램 폴

 

사용자 삽입 이미지

-         폴 생성.

.  name은 가급적 사이트 도메인을 입력해주는 게 좋습니다.

. 응용 프로그램 폴생성 : 새 응용프로그램 폴에 기본 설정 사용 선택à확인

사용자 삽입 이미지

   . 아래 그림처럼 폴 name에 따른 폴이 추가 된걸 확인한다.

사용자 삽입 이미지

        
. 웹사이트 폴 등록하기.

-         웹사이트 생성한 후 폴 등록할 사이트 속성에서 홈디렉토리 탭 선택

사용자 삽입 이미지

- 
응용 프로그램 설정 à 응용프로그램 폴 à 위에 생성했던 폴선택 à 확인

- 폴 생성에 따른 w3wp.exe 자원 확인

 

사용자 삽입 이미지

- 응용프로그램 폴과 연결된 개수만큼 w3wp.exe. 프로세스가 보인다면

    폴 등록은 완료된것이다.


2. 문제되는 사이트 찾기.

- 폴에 등록이 되어 있더라도 작업관리창에서는 w2wp.exe라는 단일 name으로 프로세스가 나타나므로 좀더 세부적인 확인이 필요하다.

  

사용자 삽입 이미지

 

-         아래 커맨드 창처럼 iisapp명령을 통해 문제가 되는 PID 값을 알아낸다.

-         응용프로그램 폴 등록시 사이트 네임과 같이 하는 이유를 알 수가 있다.

-         중지하고 싶다면 작업관리창에서 프로세스 끝내기로 종료한다.

-         또는 /r 옵션을 사용하여 폴을 Recycles 시키면 된다.

 

사용자 삽입 이미지
테스트 환경
  • Windows 2008 Server R2
  • IIS 7.5 (SMTP만 6.0)
  • ASP

웹서버를 윈도우 2003 에서 2008 로 교체하는 상황이 생겨서 교체하게 되었다.
근데 잘되던 SMTP로 메일발송하는 코드가 작동오류.
해서 개인적인 생각으로는 왠만하면 2008로 교체하며 이메일로 인한 오류는 거의 이것들 일것 같은
생각이 든다.

먼저 간단하게 함수를 만들어서 테스트를 해보았다.

Public Function eMailCDOSend(MailTag, MailTitle, Sender, Receiver)
' 2008서버에서 발송하는 환경정보 설정

Dim eMailObject, eMailConfig
Set eMailObject = Server.CreateObject("CDO.Message")
Set eMailConfig = Server.CreateObject("CDO.Configuration")
Dim SchemaPath : SchemaPath = "http://schemas.microsoft.com/cdo/configuration/"

With eMailConfig.Fields
.Item (SchemaPath & "sendusing") = 2 'CDOSendUsingPort
.Item (SchemaPath & "smtpserver") = "127.0.0.1" 'CDOSendUsingPort [ServerIP]
            .Item (SchemaPath & "smtpserver") = "localhost"    'CDOSendUsingPort
.Item (SchemaPath & "smtpserverport") = "25" 'Port
.Update
End With
eMailObject.Configuration = eMailConfig
Set eMailConfig = Nothing

With eMailObject
.From = Sender
.To = "<" & Receiver & ">"
.Subject = MailTitle
.HTMLBody = MailTag
.HTMLBodyPart.Charset = MailCharSet
.Send
End With
Set eMailObject = Nothing
End Function

Dim MailSendReturnValue
MailSendReturnValue = WVP.eMailCDOSend ("<h4>발송</h4>", "발송","www.jkun.net","jkun75@jkun.net")


결과는 정상이었다. 정상적으로 결과를 반환한다.
그런데도 메일 발송에는 실패하는 것이다.
해서 다음을 확인한다. 아 그리고 SMTP 를 IIS 6.0 으로 설치하였는데 7.5 에서는 테스트를 해보지 않았다.
일단 IIS 6.0 기준으로 릴레이 제한을 확인한다.




이렇게 해서 확인했는데도 실패하는거다. 아래와 같이..
아래 메세지는 에러객체 메세지를 찍은것이다.

서버가 하나 이상의 받는 사람 주소를 거부했습니다.
서버 응답은 다음과 같습니다. 501 5.5.4 Invalid Address 
-2147220977

문제는... 받는 사람 이메일주소에 내 이름을 썼다는 것이다. 미쳐가지고.. ㅋㅋ
다시 정상적으로 이메일주소를 입력하고 테스트하니 모두 정상.

우리 모두 필요악인 삽질을 줄이는 즐거운 현상이 많아지길. ㅋㅋ
삽질보단 고민과 생각을 늘리는 쪽으로~

그리고 댓글 달아주는 센스! ㅋㅋㅋ

'Development > ASP' 카테고리의 다른 글

IIS (7.0 이하 버전 기준 확장자 매핑)  (0) 2011.04.07
XML Parse  (0) 2011.03.28
윈도우 2008서버에서 ASP로 이메일 발송 - CDO.Message  (0) 2011.01.10
VBScript Functions  (0) 2010.12.13
ABC 업로드 컴포넌트 속성  (0) 2010.12.01
ASP 날짜 관련  (0) 2010.10.06

+ Recent posts