您目前已離線,請等候您的網際網路重新連線

如何執行輸出快取使用 Visual C#.NET 中的 Web 服務

重要:本文是以 Microsoft 機器翻譯軟體翻譯而成,而非使用人工翻譯而成。Microsoft 同時提供使用者人工翻譯及機器翻譯兩個版本的文章,讓使用者可以依其使用語言使用知識庫中的所有文章。但是,機器翻譯的文章可能不盡完美。這些文章中也可能出現拼字、語意或文法上的錯誤,就像外國人在使用本國語言時可能發生的錯誤。Microsoft 不為內容的翻譯錯誤或客戶對該內容的使用所產生的任何錯誤或損害負責。Microsoft也同時將不斷地就機器翻譯軟體進行更新。

按一下這裡查看此文章的英文版本:318299
結論
附註下列的.NET Framework 類別庫命名空間會參考本文中:
  • System.Web.Services
  • System.Text
本文將逐步告訴您,如何建立範例會使用輸出快取的 ASP.NET Web 服務。輸出快取會快取 持續期間 屬性指定給對應 WebMethod 為基礎的 Web 服務的輸出回應結果。

附註ASP.NET 2.0 中測試網頁的 HTTP 方法已經由 GET 變更 POST。不過,公佈的郵件是不快通常取。如果您變更 [測試] 頁面中 ASP.NET 2.0 Web 服務應用程式使用 GET,正確快取的運作方式。此外,HTTP 表示使用者代理程式 (瀏覽器或呼叫的應用程式) 應該能夠覆寫伺服器快取藉由設定快取控制標頭,以快取"無-區"。因此,ASP.NET 應用程式忽略快取的結果,當他們找到 「 無快取 」 標頭。

back to the top

需求

下列清單列出建議的硬體、 軟體、 網路基礎結構及所需的 Service Pack:
  • Microsoft Windows 2000 專業版,Microsoft Windows 2000 Server,Microsoft Windows 2000 進階伺服器或 Microsoft Windows XP
  • Microsoft.NET 架構
  • Microsoft 網際網路資訊服務 (IIS)
back to the top

建立新的 ASP.NET Web 服務應用程式

建立新的 ASP.NET Web 服務應用程式,名為 WSCacheSample:
  1. 啟動 Visual Studio.NET。
  2. 在 [檔案] 功能表上指向 [新增],然後按一下 [專案] 以啟動新專案精靈]。
  3. 在 [專案類型,選取 Visual C#。在 [範本,] 下選取 [ASP.NET Web 服務]。
  4. 在 [位置] 方塊取代"WebService #"URL 路徑中名稱的您的專案 WSCacheSample。如果您使用本機伺服器,伺服器名稱保留為 http://localhost,如此 [位置] 方塊中看起來類似這樣:
    http://localhost/WSCacheSample
back to the top

建立範例的 Web 服務

  1. 在 [方案總管] 中以滑鼠右鍵按一下專案節點,並指向 [新增,然後按一下 [加入 Web 服務
  2. 針對名稱輸入 CacheDemo.asmx,然後按一下 [開啟舊檔]。在 [設計] 檢視中開啟 Web 服務。
  3. 用滑鼠右鍵按一下 [Web] 服務,然後按一下 [檢視程式碼
  4. 將下列程式碼加入至 CacheDemo.asmx.cs 類別檔。 這將名為 60 秒的 CacheDurationGetCacheEntryTimeWebMethod 屬性。
    [WebMethod(CacheDuration=60)]public string GetCacheEntryTime(string Name){	StringBuilder sb = new StringBuilder("Hi ");	sb.Append(Name);	sb.Append(", the Cache entry was made at ");	sb.Append(System.DateTime.Now.ToString());		return(sb.ToString());}						
    附註: 依預設值,CacheDurationWebMethod 屬性設定為 0,這表示它不會快取。
  5. 因為範例程式碼會使用 StringBuilder 方法,包含 System.Text 命名空間的參考。在命名空間,列出的針對 Web 服務看起來類似這樣:
    using System;using System.Collections;using System.ComponentModel;using System.Data;using System.Diagnostics;using System.Web;using System.Web.Services;using System.Text;						
    注意: 如需有關 StringBuilder 類別的詳細資訊,請造訪下列 Microsoft 開發 o 人 h 員 û 工 u 具 ã 網路 (MSDN) 網站:
  6. 在 Visual Studio.NET IDE 中按一下 [在 [建置] 功能表上的 [建置方案]。
  7. 在 [檔案] 功能表上按一下 [全部儲存] 以儲存專案和相關的檔案。
back to the top

測試專案

既然建立範例 CacheDemo Web 服務執行 GetCacheEntryTimeWebMethod 查看 CacheDuration 屬性設定的效果:
  1. 在 [方案總管] 中 CacheDemo.asmx,] 上按一下滑鼠右鍵,然後按一下 [在瀏覽器中的檢視

    會在瀏覽器中開啟.asmx 檔案,而且 GetCacheEntryTimeWebMethod 屬性列為頂端的頁面項目符號的項目。
  2. 按一下 GetCacheEntryTime 連結。
  3. 在方法的 [名稱] 方塊中鍵入 Joe,然後按一下 [叫用 執行 WebMethod 屬性,並傳回 XML 結果。請注意訊息中會傳回 「 時間戳記。

    注意: 如果 [WebServices 協助頁沒有出現,您可以執行 WebService 方法在 Web 上的 [位址] 方塊中輸入下列瀏覽器:
    http://localhost/wscachesample/cachedemo.asmx/GetCacheEntryTime?Name=Joe					
  4. 輸入 Joe 再次執行 WebMethod注意: 如果您在 60 秒 CacheDuration 屬性所指定的時間期間中執行 WebMethod 屬性,會出現相同的時間戳記。
  5. 重複步驟 4,但是在 WebMethod 屬性參數的 [名稱] 方塊中輸入 張瑾雯 代替 Joe。

    請注意時間戳記結果不同。這是因為預設輸出快取結果根據 WebMethod 屬性的參數。在這個範例 Joe 是參數值的前兩個測試並快取的輸出傳回的第二個測試。當您在第三個測試中使用 張瑾雯 時,您會收到新的結果。如果您重複於 60 秒內測試,您將會收到快取的輸出結果。輸出快取版本差異有關 WebMethod 屬性參數。
back to the top

疑難排解

決定要實作您的 Web 服務的輸出快取功能時請記住資源會影響負面如果 WebMethod 屬性參數與要求相關聯的廣泛而異,或者回應牽涉到大量的資料,該伺服器。

back to the top
参考
如需有關 WebMethodAttribute.CacheDuration 屬性和 WebMethodAttribute 類別的詳細資訊,請參閱下列主題在.NET Framework 類別庫文件:如需有關 Web 服務的詳細資訊,請造訪下列 MSDN 網站:其他範例如文件,以及與使用.NET] Framework 程式設計相關的連結請造訪下列 CodePlex 網站: back to the top

警告:本文為自動翻譯

內容

文章識別碼:318299 - 最後檢閱時間:08/28/2007 06:26:02 - 修訂: 6.5

Microsoft ASP.NET 1.1, Microsoft ASP.NET 1.0, Microsoft ASP.NET 2.0, Microsoft Web Services Enhancements for Microsoft .NET 1.1, Microsoft Web Services (included with the .NET Framework) 1.0 , Microsoft Visual C# .NET 2002 Standard Edition

  • kbmt kbcaching kbhowtomaster KB318299 KbMtzh
意見反應