다음을 통해 공유


방법: 웹 서비스의 서버측 출력 캐싱을 사용하도록 설정

다음 코드 예제에서는 웹 서비스 메서드의 CacheDuration 속성을 사용하여 60초 동안 출력 캐싱을 지정하는 방법을 설명합니다. 이 예제에서는 Design Guidelines for XML Web Services Created Using ASP.NET 항목에서 설명하는 지침 중 하나를 보여 줍니다.

ASP.NET 2.0 웹 서비스 응용 프로그램에서 출력 캐싱에 영향을 미칠 수 있는 두 가지 문제가 있습니다.

ASP.NET 2.0에서 테스트 페이지의 HTTP 메서드가 GET에서 POST로 변경되었습니다. 그러나 대부분의 경우 POST는 캐시되지 않습니다. ASP.NET 2.0 웹 서비스 응용 프로그램에서 테스트 페이지를 변경하여 GET을 사용하면 캐싱이 제대로 작동합니다.

또한 HTTP는 사용자 에이전트(브라우저 또는 호출 응용 프로그램)가 "Cache-Control"을 "no-cache"로 설정하여 서버 캐싱을 재정의할 수 있어야 함을 나타냅니다. 따라서 ASP.NET 응용 프로그램에서는 "no-cache" 헤더를 발견하는 경우 캐시된 결과를 무시합니다.

예제

<%@ WebService Language="C#" Class="MathService" %>
using System;
using System.Web.Services;
public class MathService : WebService {
   [WebMethod(CacheDuration=60)]
   public float Add(float a, float b)
   {
       return a + b;
   }
   [WebMethod(CacheDuration=60)]
   public float Subtract(float a, float b)
   {
       return a - b;
   }
   [WebMethod(CacheDuration=60)]
   public float Multiply(float a, float b)
   {
       return a * b;
   }
   [WebMethod(CacheDuration=60)]
   public float Divide(float a, float b)
   {
       if (b==0) return -1;
       return a / b;
   }
}  
<%@ WebService Language="VB" Class="MathService" %>
Imports System
Imports System.Web.Services
Public Class MathService
    Inherits WebService 
    <WebMethod(CacheDuration := 60)> _
    Public Function Add(a As Single, b As Single) As Single
        Return a + b
    End Function

    <WebMethod(CacheDuration := 60)> _
    Public Function Subtract(a As Single, b As Single) As Single
        Return a - b
    End Function

    <WebMethod(CacheDuration := 60)> _
    Public Function Multiply(a As Single, b As Single) As Single
        Return a * b
    End Function

    <WebMethod(CacheDuration := 60)> _
    Public Function Divide(a As Single, b As Single) As Single
        If b = 0 Then
            Return - 1
        End If
        Return a / b
    End Function
End Class

참고 항목

작업

방법: 웹 서비스 클라이언트에서 출력 캐싱을 사용하도록 설정

개념

ASP.NET을 사용하여 만든 XML Web services에 대한 디자인 지침

Footer image

Copyright © 2007 by Microsoft Corporation. All rights reserved.