Share via


方法 : Web サービスのサーバー側の出力キャッシュを有効にする

このトピックの対象は、レガシ テクノロジに特定されています。XML Web サービスと XML Web サービス クライアントは以下を使用して作成してください。 Windows Communication Foundation.

次のコード例では、Web サービス メソッドで CacheDuration プロパティを使用して、出力キャッシュ時間を 60 秒間に指定する方法を示します。この例は、「ASP.NET を使用して作成する XML Web サービスのデザイン ガイドライン」で説明されているガイドラインの 1 つを示しています。

ASP.NET 2.0 Web サービス アプリケーションの出力キャッシュに影響を及ぼす可能性がある問題が 2 つあります。

ASP.NET 2.0 では、テスト ページの HTTP メソッドが GET から POST に変更されました。しかし、通常、POST はキャッシュされません。GET を使用するように ASP.NET 2.0 Web サービス アプリケーションのテスト ページを変更すれば、キャッシュは正常に動作します。

また、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

参照

処理手順

方法 : Web サービス クライアントで出力キャッシュを有効にする

概念

ASP.NET を使用して作成する XML Web サービスのデザイン ガイドライン