다음을 통해 공유


ASP.NET AJAX용 WCF 서비스 만들기

Microsoft ASP.NET AJAX를 사용하면 응답성이 높고 친숙한 사용자 인터페이스 요소를 통해 풍부한 사용자 경험을 제공하는 웹 페이지를 빠르게 만들 수 있습니다. ASP.NET AJAX는 크로스 브라우저 ECMAScript(JavaScript) 및 DHTML(동적 HTML) 기술을 통합하는 클라이언트 스크립트 라이브러리를 제공하며 ASP.NET 2.0 서버 기반 개발 플랫폼과 통합됩니다. ASP.NET AJAX를 사용하여 사용자 환경 및 웹 애플리케이션의 효율성을 개선할 수 있습니다.

ASP.NET AJAX는 강력한 개발 프레임워크를 제공하기 위해 통합된 서버 구성 요소와 클라이언트 스크립트 라이브러리로 구성됩니다. ASP.NET 페이지에서 서비스에 액세스하려는 경우 일단, 서비스 URL을 페이지의 ASP.NET 스크립트 관리자 컨트롤에 추가하면 일반 JavaScript 기능 호출과 똑같은 JavaScript 코드를 사용하여 서비스 작업을 호출할 수 있습니다.

대부분의 WCF(Windows Communication Foundation) 서비스는 적합한 ASP.NET AJAX 엔드포인트를 추가하여 ASP.NET AJAX와 호환되는 서비스로 노출될 수 있습니다.

Visual Studio를 사용하는 경우 AJAX 사용 WCF 서비스에 미리 빌드된 템플릿을 사용할 수 있습니다. 이 템플릿은 ASP.NET 웹 사이트 또는 웹 애플리케이션의 작업 시 새 항목 추가 대화 상자에서 사용할 수 있습니다.

Visual Studio 템플릿을 사용하지 않는 경우 다음 두 가지 방법으로 ASP.NET AJAX 엔드포인트를 만듭니다.

WCF 웹 HTTP 프로그래밍 모델 개요에 설명된 웹 프로그래밍 모델은 ASP.NET AJAX 서비스와 함께 사용할 수 있습니다. 특별한 사항

  • WebGetAttributeWebInvokeAttribute 특성을 사용하여 HTTP GET 및 HTTP POST 동사 중에서 선택할 수 있습니다. 이 기능을 올바르게 사용하면 애플리케이션의 성능이 크게 향상될 수 있습니다. 자세한 내용은 방법: ASP.NET AJAX 엔드포인트에 대해 HTTP POST 및 HTTP GET 요청 중에서 선택을 참조하세요.

  • ResponseFormatResponseFormat 속성을 사용하여 서비스에서 기본 JSON(JavaScript Object Notation) 대신 XML 데이터를 반환하도록 설정할 수 있습니다. ASP.NET AJAX 프레임워크를 사용하여 이 작업을 수행하면 JavaScript 클라이언트가 XML DOM 개체를 받게 됩니다.

    Warning

    이 작업을 수행하려면 콘텐츠 형식을 text/xml로 설정해야 합니다. 그렇지 않으면 JavaScript 클라이언트가 XML DOM 개체 대신 XML이 들어 있는 문자열을 받게 됩니다.

    다음은 콘텐츠 형식이 적절하게 설정된 XML 데이터를 반환하는 작업의 예제입니다.

    [OperationContract, WebGet(ResponseFormat=WebMessageFormat.Xml)]
    public XElement GetData()
    {
        XElement x;
        //Get some data here...
    
        WebOperationContext.Current.OutgoingResponse.ContentType = "text/xml";
        return x;
    }
    
  • ASP.NET AJAX와의 호환성이 필요한 경우에는 WebGetAttributeWebInvokeAttribute 특성의 다른 속성을 변경할 수 없습니다. ASP.NET AJAX 호출 규칙을 위반하지 않는 한 웹 프로그래밍 모델의 다른 부분을 사용할 수 있습니다.

고급 시나리오를 사용하려면 WCF의 AJAX 지원에 대한 추가 정보를 이해해야 합니다.

  • JavaScript를 사용하여 AJAX 페이지 클라이언트와 WCF 서비스 간에 데이터가 전송되는 방식을 이해하고 .NET Framework 형식을 JavaScript 형식에 매핑하는 방법에 대한 자세한 내용을 보려면 JSON 및 기타 데이터 전송 형식에 대한 지원을 참조하세요.

  • URL 기반 인증 및 ASP.NET 세션 정보 액세스 등 ASP.NET 기능을 사용하려면 구성을 통해 ASP.NET 호환 모드를 활성화하는 것이 좋습니다.

ASP.NET AJAX 프레임워크가 없어도 WCF의 AJAX 엔드포인트를 사용할 수 있습니다. 이렇게 하려면 WCF에서 AJAX 지원 아키텍처를 이해해야 합니다. 이 아키텍처에 대한 자세한 내용은 WCF 웹 HTTP 프로그래밍 개체 모델을 참조하세요. 이 접근 방식을 보여주는 코드 샘플은 JSON 및 XML을 포함한 AJAX 서비스를 참조하세요.

참고 항목