다음을 통해 공유


연습: ASP.NET을 사용하여 기본적인 XML Web services 빌드

ASP.NET을 사용한 XML Web services의 개발은 다음 단계로 시작합니다.

  1. .asmx라는 확장명을 지정한 파일을 만들고 @WebService 지시문을 사용하여 웹 서비스를 선언합니다.

  2. 웹 서비스를 구현하는 클래스를 만듭니다. 이 클래스는 WebService 클래스에서 파생시킬 수도 있습니다.

  3. 웹 서비스를 구현하는 클래스에 필요에 따라 WebServiceAttribute 특성을 선택적으로 적용합니다.

  4. 웹 서비스의 기능을 구성하는 웹 서비스 메서드를 정의합니다.

웹 서비스 선언

ASP.NET에서 XML Web services를 만들 경우 .asmx라는 확장명을 가진 텍스트 파일의 맨 위에 필수적인 @ WebService 지시문을 추가합니다. @ WebService 지시문이 지정된 .asmx 파일이 있으면 XML Web services의 URL 주소가 해당 구현에 연결됩니다. XML Web services 클라이언트에 표시되는 메서드 및 데이터 형식을 정의하는 XML Web services 클래스를 구현합니다. 마지막으로 XML Web services 논리를 해당 메서드에 추가하여 XML Web services 요청을 처리하고 응답을 다시 보냅니다. 정의한 XML Web services 클래스를 .asmx 파일이나 별도의 파일에 직접 포함할 수 있습니다. 별도의 파일을 사용할 경우 파일을 어셈블리로 컴파일해야 합니다. XML Web services를 구현하는 클래스에 WebService 특성을 필요에 따라 선택적으로 적용할 수 있습니다. XML Web services를 구현하는 클래스는 WebService 클래스에서 파생시킬 수 있습니다.

동일한 파일에 구현을 포함하는 웹 서비스를 선언하려면

  • .asmx라는 확장명을 가진 파일의 맨 위에 @ WebService 지시문을 추가하여 웹 서비스를 구현하는 클래스와 해당 구현에 사용되는 프로그래밍 언어를 지정합니다.

    Class 특성은 @ WebService와 동일한 어셈블리에 있는 클래스나 개별 어셈블리 내의 클래스로 설정할 수 있습니다. 클래스가 별도의 어셈블리에 있는 경우에는 웹 서비스가 있는 웹 응용 프로그램 아래의 \Bin 디렉터리에 클래스가 있어야 합니다. Language 특성은 C#, VBJS로 설정할 수 있습니다. 여기서 각 값은 C#, Visual Basic .NET 및 JScript .NET을 나타냅니다.

    다음 코드 예제에서는 @ WebService 지시문의 Language 특성을 설정하고 Class 특성을 동일한 파일에 있는 Util**로 설정합니다.

    <%@ WebService Language="C#" Class="Util" %>
    
    <%@ WebService Language="VB" Class="Util" %>
    

어셈블리에 구현을 포함하는 웹 서비스를 선언하려면

  • .asmx라는 확장명을 가진 파일의 맨 위에 @ WebService 지시문을 추가하여 웹 서비스를 구현하는 클래스, 구현을 포함하는 어셈블리 및 해당 구현에 사용되는 프로그래밍 언어를 지정합니다. 별도의 파일을 사용할 경우 파일을 어셈블리로 컴파일해야 합니다.

    다음 @ WebService 지시문은 .asmx라는 확장명을 가진 파일의 유일한 행이며, MyName.MyWebService 클래스가 웹 서비스를 호스팅하는 웹 응용 프로그램의 \Bin 디렉터리 내의 MyAssembly 어셈블리에 있음을 지정합니다.

    <%@ WebService Language="C#" Class="MyName.MyWebService,MyAssembly" %>
    
    <%@ WebService Language="VB" Class="MyName.MyWebService,MyAssembly" %>
    
    Note참고:

    @ WebService 지시문에 어셈블리를 지정하지 않으면 ASP.NET은 웹 서비스를 처음 액세스할 때 웹 서비스를 호스팅하는 웹 응용 프로그램의 \Bin 디렉터리에 있는 어셈블리 목록을 검색합니다. 따라서 어셈블리 이름을 제공하면 처음 액세스할 때 성능이 향상됩니다.

WebService 클래스에서 파생

ASP.NET을 사용하여 만든 웹 서비스를 구현하는 클래스는 Application, Session, UserContext와 같은 공통 ASP.NET 개체에 액세스하도록 WebService 클래스에서 선택적으로 파생시킬 수 있습니다.

WebService 클래스에서 파생시켜 일반 ASP.NET 개체에 액세스하려면

<%@ WebService Language="C#" Class="Util" %>
using System;
using System.Web.Services;

public class Util: WebService 
<%@ WebService Language="VB" Class="Util" %>
Imports System
Imports System.Web.Services

Public Class Util
   Inherits WebService

WebService 특성 적용

웹 서비스를 설명하는 문자열과 함께 웹 서비스에 대한 기본 XML 네임스페이스(http://tempuri.org)를 설정하려면 웹 서비스를 구현하는 클래스에 WebService 특성을 선택적으로 적용합니다.

XML Web services를 공개적으로 사용할 수 있도록 하기 전에 이 기본 네임스페이스(http://tempuri.org)를 변경하는 것이 좋습니다. 그 이유는 네임스페이스를 기본값(<http://tempuri.org/>)으로 잘못 사용할 수 있는 다른 XML Web services와 구분해야 하기 때문입니다.

웹 서비스가 멤버인 XML 네임스페이스를 설정하려면

  • 웹 서비스를 구현하는 클래스에 WebService 특성을 적용하여 Namespace 속성을 설정합니다.

다음 코드 예제에서는 XML 네임스페이스를 https://www.contoso.com/으로 설정합니다.

<%@ WebService Language="C#" Class="Util" Debug=true%>
using System.Web.Services;
using System;

[WebService(Namespace="https://www.contoso.com/")]
public class Util: WebService 
<%@ WebService Language="VB" Class="Util"%>
Imports System.Web.Services
Imports System

<WebService(Namespace:="https://www.contoso.com/")> _
Public Class Util
    Inherits WebService

웹 서비스 메서드 정의

웹 서비스를 구현하는 클래스의 메서드는 웹을 통해 자동으로 통신할 수 없지만, ASP.NET을 사용하여 만든 웹 서비스를 사용하여 이 기능을 쉽게 추가할 수 있습니다. 이 기능을 추가하려면 public 메서드에 WebMethod 특성을 적용합니다. 웹을 통해 통신할 수 있는 웹 서비스의 메서드를 웹 서비스 메서드라고 합니다.

웹 서비스 메서드를 선언하려면

  1. 웹 서비스를 구현하는 클래스에 public 메서드를 추가합니다.

  2. 웹 서비스 작업에 매핑할 public 메서드에 WebMethod 특성을 적용합니다.

다음 코드 예제에는 두 개의 public 메서드가 있으며, 그 중 하나가 웹 서비스 메서드입니다. Multiply 메서드는 WebMethod 특성이 적용되었기 때문에 웹 서비스 메서드입니다.

<%@ WebService Language="C#" Class="Util" %>
using System.Web.Services;
using System;

[WebService(Namespace="https://www.contoso.com/")]
public class Util: WebService 
{
    [ WebMethod]    public long Multiply(int a, int b) 
    {
        return a * b;
    }
}
<%@ WebService Language="VB" Class="Util" %>

Imports System.Web.Services
Imports System

<WebService(Namespace:="https://www.contoso.com/")> 
Public Class Util 
    Inherits WebService
    < WebMethod()> _    Public Function Multiply(a As Integer, b As Integer) As Long
        Return a * b
    End Function
End Class

참고 항목

참조

WebService Class
WebServiceAttribute Class
WebMethodAttribute Class

개념

ASP.NET XML Web services 기본 사항

기타 리소스

ASP.NET을 사용하는 XML Web services

Footer image

Copyright © 2007 by Microsoft Corporation. All rights reserved.