본문 바로가기

개발&컴퓨터/서버관리

[IIS+ASP.NET] 브라우저에서 웹 사이트 서버 오류 자세히 보기

반응형

IIS 웹 서버 운용 중에 웹 페이지 코드에 오류가 있거나 원격DB서버에 접속이 환경 변화로 인해 제대로 접속이 안되거나 등등 여러가지 원인으로 오류가 발생할 수 있습니다.

 

웹 서버에 오류가 발생하면 보통 아래와 같이 서버 오류가 발생하였다는 메시지가 뜹니다.

  

 

하지만, 일반적인 IIS 설정이라면 오류 내용이 표시되지 않습니다. 단순히 서버에 오류가 있다는 사실만 알려줍니다.

어쩌면 참 불친절하다고 생각할 수 있지만, 이는 보안이라는 당연한 이유로 그렇습니다.

 

오류에 대한 상세한 내용이 표시된다면 관리자나 개발자 입장에서는 해당 오류를 바로 확인하여 쉽게 수정할 수 있겠지만, 일반 사용자들도 접속하는 사이트라면 웹 사이트의 문제가 있는 코드에 대해 웹 브라우저를 통해 열람이 가능할 수 있게 되고, 이러한 코드 노출로 인해 웹 사이트의 취약점이나 정보가 외부에 노출될 가능성이 있습니다.

 

그렇기 때문에 이렇게 오류가 발생한 경우에는 별도의 개발 서버나 개발자 로컬 서버에서 동일한 환경으로 세팅한 후, 재현하여 문제를 해결하는 것을 원칙으로 합니다.

하지만, 여러가지 이유로 현재 서비스 되는 웹 서버에서 오류를 확인해야 한다거나 오류 코드가 노출되도 문제가 없는 사이트라면 IIS의 설정을 통해 브라우저에 웹 서버에서 발생한 오류를 좀 더 자세하게 확인할 수 있습니다.

 

1) IIS(인터넷 정보 서비스) 관리자를 실행합니다.

 * 오류를 확인할 웹 사이트를 좌측 트리 메뉴에서 선택합니다.

 * 기본 웹 사이트 홈 화면이 뜨면 [ASP] 아이콘을 더블 클릭하여 선택합니다.

 

 

 

 

2) ASP 페이지에서 디버깅 속성 옵션을 일부 변경합니다.

 * 브라우저에서도 서버 오류를 확인할 수 있도록 '브라우저에 오류 전송' 항목을 True 로 설정합니다.

 * '클라이언트 쪽 디버깅 사용' 항목도 True 로 설정합니다.

 * 설정을 변경하였으면, 우측 상단의 작업 영역에서 [적용] 버튼을 클릭하여 변경 사항을 저장합니다.

 

 

 

3) 다시 웹 사이트 홈에서 [오류 페이지] 아이콘을 더블 클릭하여 선택합니다.

 * 또는 아이콘 위에 마우스를 올려놓고 우클릭 하면 뜨는 컨텍스트 메뉴에서 [기능 열기] 메뉴를 선택하셔도 됩니다.

 

 

 

 

4) 오류 페이지 에서 마우스 우측 버튼을 클릭하면 뜨는 컨텍스트 메뉴에서 [기능 설정 편집...] 메뉴를 선택합니다.

 

 

 

5) 오류 페이지 설정 편집 다이얼로그에서 설정을 변경합니다.

 '자세한 오류' 항목을 선택한 후, 확인 버튼을 클릭합니다.

 

 

* 이제 모든 설정이 완료되었습니다. 간단합니다.^^

* 이제 다시 웹 사이트로 가서 해당 페이지에서 오류가 나는지 확인해보겠습니다. 웹 브라우저로가서 F5키를 눌러 페이지를 새로고침합니다.

  (만약 동일한 서버 오류 화면이 뜬다면 웹 사이트를 재시작 해주세요.)

 

 

 

 이제 자세한 오류가 웹 브라우저에 표시됩니다.

ASP.NET 에서 제공하지 않는 서버 태그를 사용하였군요. 바로 수정할 수 있을 것 같습니다!!

 

 

하나 더!!)

혹시 이렇게 했는데도 오류가 제대로 표시되지 않습니다. 기존과 동일하게 서버 오류로만 표시됩니다.

 

* 이러한 경우는 ASP.NET 에서의 web.config 파일을 수정하여 문제를 해결할 수 있습니다.

 

 

 

웹 사이트의 web.config 파일을 열어서 customErrors 의 모드를 Off 로 해주시면 됩니다.

 

해당 코드의 삽입 위치는 아래와 같습니다. configuration - system.web 태그 내에 포함시켜 주시면 됩니다.

<configuration>

<system.web>

...

<customErrors mode="Off"></customErrors>

...

</system.web>

</configuration>

 

웹 사이트에서 에러 발생 시, 처리 모드를 꺼주게(Off) 되면 IIS의 설정을 기반으로 오류를 처리하게 됩니다.

 

 

 

반응형