Share via


Basic AJAX Service

이 샘플에서는 WCF(Windows Communication Foundation)를 사용하여 기본 ASP.NET AJAX(Asynchronous JavaScript and XML) 서비스(웹 브라우저 클라이언트에서 JavaScript 코드를 통해 액세스할 수 있는 서비스)를 만드는 방법을 보여 줍니다. 이 서비스에서는 HTTP GET 요청에 응답하고 JSON(JavaScript Object Notation) 데이터 형식을 응답에 사용하도록 WebGetAttribute 특성이 사용됩니다.

WCF의 AJAX 지원은 ScriptManager 컨트롤을 통해 ASP.NET AJAX와 함께 사용하도록 최적화되었습니다. ASP.NET AJAX와 함께 WCF를 사용한 예제를 보려면 AJAX 샘플을 참조하십시오.

참고

이 샘플을 빌드하고 실행하려면 .NET Framework 버전 3.5가 설치되어 있어야 하며 프로젝트 및 솔루션 파일을 열려면 Visual Studio 2008이 필요합니다.

참고

이 샘플의 설치 절차 및 빌드 지침은 이 항목의 끝부분에 나와 있습니다.

다음 코드에서는 서비스가 HTTP GET 요청에 응답하도록 WebGetAttribute 특성이 Add 작업에 적용됩니다. 이 코드에서는 간편하게 GET을 사용합니다. HTTP GET 요청은 모든 웹 브라우저에서 생성할 수 있습니다. 또한 GET을 사용하여 캐싱을 사용하도록 설정할 수 있습니다. WebGetAttribute 속성이 없을 경우 HTTP POST가 기본값입니다.

[ServiceContract(Namespace = "SimpleAjaxService")]
public interface ICalculator
{
    [OperationContract]
    [WebGet]
    double Add(double n1, double n2);
    //Other operations omitted…
}

서비스 구성 파일에서 <webHttpBinding> 표준 바인딩과 <enableWebScript> 동작을 사용하여 서비스에서 AJAX 끝점을 만들 수 있습니다.

<system.serviceModel>
    <behaviors>
        <endpointBehaviors>
            <behavior name="Microsoft.Ajax.Samples.CalculatorServiceAspNetAjaxBehavior">
                <enableWebScript />
            </behavior>
        </endpointBehaviors>
    </behaviors>
    <services>
        <service name="Microsoft.Ajax.Samples.CalculatorService">
            <endpoint address=" "
                behaviorConfiguration="Microsoft.Ajax.Samples.CalculatorServiceAspNetAjaxBehavior" 
                binding="webHttpBinding"
                contract="Microsoft.Ajax.Samples.ICalculator" />
        </service>
    </services>
</system.serviceModel>

enableWebScript 동작은 서비스의 기본 데이터 형식을 XML 대신 JSON으로 설정합니다. 서비스를 호출하려면 이 항목의 뒷부분에 나오는 설치 및 빌드 단계를 완료한 후 https://localhost/ServiceModelSamples/service.svc/Add?n1=100&n2=200으로 이동합니다. 이 테스트 기능은 HTTP GET 요청을 사용해 설정됩니다.

클라이언트 웹 페이지 SimpleAjaxClientPage.aspx에는 사용자가 페이지에 있는 작업 단추 중 하나를 클릭할 때마다 서비스를 호출하는 ASP.NET 코드가 포함되어 있습니다. ScriptManager 컨트롤은 서비스에 대한 프록시를 JavaScript를 통해 액세스할 수 있게 만드는 데 사용됩니다.

<asp:ScriptManager ID="ScriptManager" runat="server">
     <Services>
          <asp:ServiceReference Path="service.svc" />
     </Services>
</asp:ScriptManager>

다음 JavaScript 코드를 사용하여 로컬 프록시가 인스턴스화되고 작업이 호출됩니다.

// Code for extracting arguments n1 and n2 omitted…
// Instantiate a service proxy
var proxy = new SimpleAjaxService.ICalculator();
// Code for selecting operation omitted…
proxy.Add(parseFloat(n1), parseFloat(n2), onSuccess, onFail, null);

서비스 호출에 성공할 경우 onSuccess 처리기가 호출되고 작업 결과가 텍스트 상자에 표시됩니다.

function onSuccess(mathResult){
     document.getElementById("result").value = mathResult;
}

샘플을 설치, 빌드 및 실행하려면

  1. Windows Communication Foundation 샘플의 일회 설치 절차의 설치 지침을 수행했는지 확인합니다

  2. Windows Communication Foundation 샘플 빌드에 설명된 대로 SimpleAjaxService.sln 솔루션을 빌드합니다.

  3. https://localhost/ServiceModelSamples/SimpleAjaxClientPage.aspx로 이동합니다. 브라우저의 프로젝트 디렉터리에서 SimpleAjaxClientPage.aspx를 열지 마십시오.

Send comments about this topic to Microsoft.
© 2007 Microsoft Corporation. All rights reserved.