共用方式為


HOW TO:為 Web 服務啟用伺服器端輸出快取

下列程式碼範例示範如何在 Web 服務方法上使用 CacheDuration 屬性,來指定 60 秒的輸出快取週期。此範例說明使用 ASP.NET 建立之 XML Web Service 的設計方針主題所解釋的其中一項方針。

有兩個問題會影響 ASP.NET 2.0 Web 服務應用程式中的輸出快取。

在 ASP.NET 2.0 中,測試頁的 HTTP 方法已從 GET 變更為 POST。但是,POST 通常不會快取。如果在 ASP.NET 2.0 Web 服務應用程式中將測試頁變更為使用 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

請參閱

工作

HOW TO:在 Web 服務用戶端上啟用輸出快取

概念

使用 ASP.NET 建立之 XML Web Service 的設計方針

Footer image

Copyright © 2007 by Microsoft Corporation. All rights reserved.