IIS 6과 7 차이점, ASP.NET 세팅방법


Microsoft/윈도우 이야기 2011.03.17 21:11




출처 : 김소정님
 http://woleol.tistory.com

IIS 6.0 7.0의 차이

IIS6.0 은 제어판의 프로그램 추가 / 삭제 에서 IIS 7.0 Server Manager Roles에서 선택해서 설치 한 다는 것이다.

.NetFrameWork 의 동작 형태와 내부 모듈을 사용을 선택적으로 할 수 있느냐 없느냐 차이가 있다 하지만 사용 하는데 있어서는 별 차이는 없다

Open Source의 활용에 있어서는 IIS는 아직 유연하지 못하다.

설치 방법은 IIS6.0 설치 할 때 ASP.NET을 지원하기 위해 체크 한 것과 똑같이 IIS 7.0도 체크 하고 사용하면 별 다른 문제 없이 사용한다.

여기서 주목해야 할 부분은 IIS 7.0 환경에서는 프레임웍을 2.0만 지원한다는 것이다.

IIS7.0에서 .NetFrameWork 3.0을 설치 하고 지원하고자 한다면 IIS7.0 설치가 아니라 Application Server를 설치 해야 한다.

Application Server 설치시 Web Server (IIS) Support 를 선택하면 된다.

.NetFrameWork 3.5 IIS 7.0 에서 아직 지원을 하고 있지 않다.

기존 IIS 6.0과는 다르게 컴포넌트 베이스로 만들어져 있다.

지금까지의 IIS는 설치 시 특정 기능에 대한 제거가 불가능했다. 예를 들어, Windows 인증, 기본 인증을 쓰지 않을 경우에도, Web 관련 모듈을 설치하시면 무조건 같이 설치가 되었지만, IIS 7.0부터는 IIS의 모든 모듈을 개별적으로 선택하여 설치할 수 있다.

IIS 6.0상에서 asp 스크립트 실행이 불가능 할 때

Microsoft ASP(Active Server Pages)는 동적인 대화형 웹 페이지를 만들고 강력한 웹 응용 프로그램을 작성하는 데 사용할 수 있는 서버 쪽 스크립트 환경이다. 서버가 ASP 파일에 대한 요청을 받으면 해당 파일에 들어 있는 서버 쪽 스크립트 코드를 처리하여 브라우저로 보내는 HTML 웹 페이지를 만든다. ASP 파일에는 서버 쪽 스크립트 코드 외에도, 데이터베이스에 연결하거나 비즈니스 논리를 처리하는 것과 같은 다양한 작업을 수행하는 COM(구성 요소 개체 모델) 구성 요소에 대한 호출과 HTML(관련된 클라이언트 쪽 스크립트 포함)이 포함될 수 있다.

여기서 잠깐! Active Server Pages를 실행을 실행 할려면 IIS 관리에 웹 서비스 확장을 클릭! 그 밑에 확장탭과 표준탭이 있는데 표준 탭을 클릭하면 Active Server Pages 가 있는 걸 볼 수 있다. 허용을 클릭하면 된다

중요!

공격 대상이 될 수 있는 서버의 취약점을 최소화하기 위해 IIS 6.0 Windows Server 2003에 기본적으로 설치 안돼 있다. IIS 6.0을 처음 설치할 때 이 서비스는 잠겨 있다. , 정적 웹 페이지에 대한 요청 처리만 사용 가능하며 World Wide Web 게시 서비스(WWW 서비스)만 설치된다. ASP, ASP.NET, CGI 스크립팅, Microsoft FrontPage® 2002 Server Extensions WebDAV 게시 등 IIS를 기반으로 하는 기능은 설정되지 않는다. 이러한 기능을 사용하지 않으면 IIS에서 404 오류가 반환된다. IIS 관리자에서 웹 서비스 확장 노드를 통해 이러한 기능을 사용하도록 설정할 수 있다

웹 서비스 확장 사용

     IIS 관리자에서 웹 서비스 확장 폴더를 클릭

     세부 정보 창에서 사용할 웹 서비스 확장을 선택한 다음 허용을 클릭

     웹 서비스 확장명의 속성을 보려면 확장을 선택한 다음 속성을 클릭

중요!

웹 서버에서 알려지지 않은 ISAPI 확장이나 CGI 확장이 실행되도록 허용하면 이러한 기술을 이용하는 컴퓨터 바이러스나 웜에 웹 서버가 감염될 수 있다. 대신 웹 서버에서 실행하려는 특정 ISAPI 확장 또는 CGI 확장만 선택한다.

 

IIS 7.0 ASP 오류 처리

에러메시지> HTTP 오류 403.14 – Forbidden

체크확인> 제어판 프로그램 추가/삭제 windows 기능 추가에서

인터넷 정보서비스 -> w.w.w 서비스 -> 응용프로그램 개발기능에 asp가 체크되었는지 확인

에러메시지> An error occurred on the server when processing the URL

Please contact the system administrator

해결방법> IIS에서 기능보기에서 ASP -> 디버깅 속성 브라우져 오류전송을 false true로 변경

에러메시지> Active Server Pages 오류 ASP 0131

허용되지 않는 부모 경로

/~~~ JS asp, 234

‘../~~~process.asp’ Include 파일은 부모 디렉터리를 표시하기 위해 ‘..’를 사용 불 가능

해결방법> IIS 해당 사이트 기능보기에서 ASP -> 동작 부모경로사용 false true로 변경

 

Web.config 파일을 이용한 asp.net 설정

기존의 asp 환경에서는 IIS의 메타데이터에 웹 응용 프로그램의 각종 설정 데이터를 보관했었다. 그러나 asp.net 환경에서는 이 방식에서 탈피하여 새롭게 web.config라는 이름의 파일에 웹 응용 프로그램의 설정 정보를 저장하고 있다

Web.config 파일은 개별적인 웹 응용 프로그램의 루트 폴더에 위치하며 따라서 각각의 웹 응용 프로그램 별로 각기 다른 설정을 적용할 수 있다. 또는 웹 응용 프로그램을 구성하는 하위 폴더에 위치하여 각 폴더별로 다른 설정을 적용할 수도 있다.

Web.Config 파일은 XML을 기반으로 구성되어 있기 때문에 개발자는 웹 응용 프로그램에 대한 설정의 변경이 매우 용이해졌으며 또한 설정의 적용 역시 단순히 파일을 복사하는 것으로 끝낼 수 있다.

게다가 ASP.NET Web.Config 파일의 변경 사항을 자동적으로 감지하여 이를 웹 응용 프로그램의 중단이나 재 시작 없이 적절한 시기에 적용시킨다. 따라서 웹 응용 프로그램의 지속성을 향상시켰을 뿐 아니라 HTTP 프로토콜을 통한 웹 브라우저의 접근을 원천적으로 차단하고 있어 보안성 또한 높아졌다.

<configuration>

 <location> // 자신의 하위 노드를 통해 설정된 설정 데이터를 적용할 특정 파일 경로를 지정할 수 있으며 생략될 수도 있다

  <system.web> // 지정된 다양한 asp.net 웹 응용 프로그램 설정 데이터를 지정할 수 있는 여러 노드와 특성들이 존재 한다

   <authentication></authentication>

   <authorization></authorization>

   <browserCaps></browserCaps>

   <clientTarget></clientTarget>

   <compilation></compilation>

   <customErrors></customErrors>

   <globalization></globalization>

   <httpHandlers></httpHandlers>

   <httpRuntime></httpRuntime>

   <identity>

   <machineKey>

   <pages>

   <processModel>

   <securityPolicy>

   <sessionState>

   <trace>

   <trust>

   <webServices></webServices>

  </system.web>

  <appSettings></appSettings> // 개발자가 임의의 설정 데이터를 지정할 수 있다

 </location>

</configuration>

<location>

<location path=”path” allowOverride=”true | false”></location>

다음 섹션 구성은 <system.web> 섹션의 모든 설정이 Default.aspx 페이지에만 적용되도록 한다.

<configuration>

 <location path=”Default.aspx”>

 <system.web>

 

 </system.web>

</configuration>

 

<system.web>

ASP.NET 웹 응용 프로그램의 설정 데이터를 구성하기 위한 루트 노드

 하위

<authentication>

이 섹션은 ASP.NET 웹 응용 프로그램의 인증 모드를 지정하기 위한 섹션이다. 이 섹션은 웹 응용 프로그램 또는 서버 시스템 레벨에서만 설정할 수 있으며 웹 응용 프로그램을 구성하는 하위 폴더에서 지정하려 하면 파서 오류가 발생한다

<authentication mode=”Windows | Forms | Passport | None”></authentication>

<form>

<authentication> 섹션의 mode 특성이 Forms 모드로 지정되어 ASP.NET 폼 기반 인증 방식이 지정되었을 경우 <forms> 하위 섹션을 통해 보다 세밀한 제어가 가능

<forms name=”form_name”  login_url=”url” protection=”All | None | Encryption | Validation” timeout=”30” path=”/” requireSSL=”true | false” slidingExpiration=”true | false”>

  <credentials passwordFormat=”clean | SHA1 | MD5”>

   <user name=”user_name” password=”password”></user>

  </credentials>

</forms>

<credentials>

특정 사용자의 ID와 비밀 번호를 정의하기 위해

<users>

사용자의 ID와 비밀번호를 지정할 수 있다

-       웹 응용 프로그램에 forms 인증 모드를 적용하고 1명의 사용자에 대해 로그인 자격을 암호화 하여 지정한다

<configuration>

 <system.web>

  <authentication mode=”Forms”>

   <forms name=”form1” loginUrl=”/Login.aspx”>

    <credentials passwordFormat=”MD5”>

     <user name=”admin”

      password=”admin_password”>

    </user>

    </credentials>

  </authentication>

 </system.web>

</configuration>


저작자 표시 비영리
신고

WRITTEN BY
ShakeJ

0 ,