다음을 통해 공유


ASP.NET 모바일 Web Forms 및 ASP.NET 호환성

업데이트: 2007년 11월

ASP.NET 모바일 Web Forms 페이지를 만들 때는 ASP.NET의 기능을 거의 대부분 사용할 수 있지만 먼저 호환성 문제를 고려해야 합니다.

오류 처리 및 보고

ASP.NET 응용 프로그램에서 요청을 처리하는 동안 처리되지 않은 예외 또는 기타 오류가 발생하면 오류 페이지가 생성됩니다. 예외는 요청을 처리하는 동안 언제든지 발생할 수 있습니다. 예를 들면 구성 파일(Web.config)을 읽을 때, 페이지를 컴파일할 때 또는 페이지를 실행할 때 예외가 발생할 수 있습니다.

기본 또는 사용자 지정 오류 페이지를 생성하도록 응용 프로그램을 구성할 수 있습니다. 기본 오류 페이지를 사용하도록 응용 프로그램을 구성하면 ASP.NET에서는 응답에 오류 코드를 설정하고 해당 오류를 자세히 설명하는 페이지를 렌더링합니다. 그러나 사용자 지정 오류 페이지를 사용하도록 응용 프로그램을 구성하면 각 오류 요청은 사용자가 제공한 사용자 지정 페이지로 리디렉션됩니다.

대부분의 모바일 장치는 오류 페이지의 자세한 내용을 렌더링할 수 없으며 일반적으로 장치별 오류 메시지 또는 오류 코드만 표시합니다. 이 문제를 해결하기 위해 ASP.NET 모바일 Web Forms 페이지는 장치에서 오류 페이지가 렌더링되도록 해당 오류 페이지의 서식을 지정하려고 하는데 이러한 장치별 렌더링은 페이지를 실행할 때 발생하는 예외에 대해서만 가능합니다. 따라서 기본 오류 페이지를 사용하는 경우에는 먼저 모바일 Web Forms 페이지를 데스크톱 브라우저에서 테스트하여 구성 또는 컴파일 오류가 발생할 가능성이 있는지 확인해야 합니다.

ASP.NET 모바일 웹 응용 프로그램에 사용자 지정 오류 페이지를 사용하려는 경우, 모바일 컨트롤을 사용하여 사용자 지정 오류 페이지를 작성하면 ASP.NET에서는 여러 가지 모바일 장치별로 오류 페이지 서식을 적절하게 지정할 수 있습니다.

ASP.NET의 오류 페이지에 대한 자세한 내용은 ErrorPage 속성 문서를 참조하십시오. 오류 관리에 대한 자세한 내용은 ASP.NET 모바일 웹 페이지의 각 장치에 대해 최적화된 오류 보고 관리를 참조하십시오.

추적

ASP.NET에서는 웹 응용 프로그램을 디버깅하는 데 사용할 수 있는 간단한 추적 기능을 제공하며 여기에는 두 가지 수준의 추적, 즉 페이지 수준 추적과 응용 프로그램 수준 추적이 포함됩니다. 페이지 수준 추적 기능은 추적된 각 페이지에 HTML 코드를 추가하여 추적 정보를 제공하고 응용 프로그램 수준 추적 기능은 해당 응용 프로그램에서 매핑된 특수 URL(Trace.axd)을 통해 추적 정보를 제공합니다.

ASP.NET 모바일 웹 응용 프로그램에서 페이지 수준 추적을 사용하면 렌더링에 추가된 HTML 코드로 인해 모바일 장치에서 출력이 렌더링되지 않을 수도 있습니다. 따라서 ASP.NET 모바일 웹 응용 프로그램에는 응용 프로그램 수준 추적을 사용하고 추적 결과를 데스크톱 웹 브라우저에서 확인해야 합니다.

ASP.NET의 추적 기능에 대한 자세한 내용은 ASP.NET 추적 개요를 참조하십시오.

세션 상태 및 쿠키

ASP.NET에서는 각 요청 상태를 손쉽게 유지할 수 있도록 다양한 세션 관리 기능을 제공합니다. 일반적으로 ASP.NET 세션 상태 기능은 브라우저에서 쿠키를 사용하지만 쿠키를 사용하지 않도록 구성될 수도 있습니다.

ASP.NET에서는 Session을 사용하여 여러 요청에 대해 사용자 세션 정보를 저장할 수 있습니다. ASP.NET의 세션 관리 기능은 확장 가능하고 강력하므로 웹 팜에서도 사용할 수 있습니다. 기본적으로 ASP.NET Session은 클라이언트측 쿠키를 사용하여 클라이언트 컴퓨터에 식별자를 저장합니다. 이 식별자를 사용하여 서버 라운드트립 동안 세션을 찾을 수 있습니다. 또한 ASP.NET Session은 쿠키가 없는 세션 모드도 지원하는데, 이 경우 클라이언트는 세션 식별자가 포함된 새 URL로 리디렉션됩니다. 그런 다음 세션 식별자가 URL 밖으로 자동 구문 분석됩니다.

ASP.NET 모바일 웹 응용 프로그램을 작성하는 경우 일부 모바일 장치 및 무선 게이트웨이에서는 쿠키를 지원하지 않는다는 사실을 기억해야 합니다. 이러한 장치도 지원하려면 쿠키가 없는 세션을 사용하도록 응용 프로그램을 구성해야 합니다.

ASP.NET의 세션 관리 기능에 대한 자세한 내용은 ASP.NET 상태 관리 개요를 참조하십시오.

세션 상태 사용 시 고려 사항

세션 상태 관리를 사용하는 ASP.NET 모바일 웹 응용 프로그램을 작성할 때는 다음 사항을 고려해야 합니다.

  • 모바일 Web Forms 페이지에는 System.Web.UI.WebControls 네임스페이스의 ASP.NET 컨트롤을 사용할 수 없습니다. System.Web.UI.MobileControls 네임스페이스의 모바일 웹 컨트롤을 사용하는 모바일 Web Forms 페이지에서는 @ Page 지시문의 EnableSessionState 특성을 false로 설정할 수 있습니다. 그러나 System.Web.UI.WebControls 네임스페이스의 ASP.NET 컨트롤을 사용하는 모바일 Web Forms 페이지에서 EnableSessionState를 false로 설정하면 컴파일 타임 오류가 발생할 수 있습니다.

  • 일부 모바일 장치 및 게이트웨이에서는 쿠키를 지원하지 않습니다. 이러한 장치에서 ASP.NET 모바일 Web Forms 페이지를 실행하려면 sessionState 요소의 cookieless 특성을 true로 설정합니다.

  • 일부 모바일 장치에서는 쿠키가 없는 세션 관리 기술을 통해 상대 URL이 리디렉션된 후 이러한 URL을 처리하는 데 문제가 생길 수 있습니다.

    예를 들어, Openwave 브라우저에서 https://localhost/a.aspx에 있는 .aspx 파일을 여는 경우, 웹 사이트에서 브라우저를 /12345678/a.apsx로 리디렉션하면 이 브라우저는 현재 경로를 계속 루트로 인식하고 b.aspx에 대한 후속 상대 참조를 /b.aspx로 요청합니다.

    이 문제를 해결하려면 리디렉션 이후에 렌더링하는 경우 상대 URL 대신 루트가 지정된 URL(예: /12345678/a.aspx)을 페이지에 포함시켜야 합니다. 기본 제공되는 ASP.NET 모바일 컨트롤에는 이 방법이 자동으로 구현되지만 새로 작성하는 컨트롤 또는 어댑터에는 리디렉션 후에 렌더링을 처리하는 코드를 수동으로 포함시켜야 합니다. MobilePage와 어댑터 기본 클래스에는 모바일 컨트롤 개발자가 루트가 지정된 URL을 작성하는 데 사용할 수 있는 MakePathAbsolute 등의 메서드가 제공됩니다.

리디렉션 사용

일부 장치 및 브라우저에서는 HTTP 리디렉션에 대한 응답으로 정규화된 URL이 필요합니다. 이 경우 응용 프로그램 수준에서 Machine.config 파일이나 Web.config 파일의 System.Web 섹션에 있는 httpRuntime 요소의 useFullQualifiedRedirectUrl 특성을 true로 설정합니다. 자세한 내용은 ASP.NET 모바일 웹 페이지로 리디렉션을 참조하십시오.

구문 문제

ASP.NET에서는 유효한 구문(예: <%=)이 ASP.NET 모바일 컨트롤에서는 유효하지 않을 수 있으므로 이런 경우에는 데이터 바인딩 메커니즘을 사용하여 구문을 바꾸어야 합니다.

데이터 바인딩 식은 <%# 및 %>로 구분되어야 합니다. 다음 예제는 데이터 바인딩 식 사용을 보여 줍니다.

<%# binding expression code goes here %>

참고 항목

개념

ASP.NET 모바일 웹 페이지의 각 장치에 대해 최적화된 오류 보고 관리

ASP.NET 추적 개요

ASP.NET 상태 관리 개요

ASP.NET 모바일 웹 페이지로 리디렉션

참조

ErrorPage

기타 리소스

ASP.NET 모바일 컨트롤 시작