実行する方法は、Visual C# .NET で Web サービスを使用してキャッシュを出力

概要

注: 次の.NET Framework クラス ライブラリの名前空間は、この資料で参照されます。
  • System.Web.Services
  • System.Text
この資料では、サンプルの出力キャッシュを使用する ASP.NET Web サービスを作成する方法について説明します。出力キャッシュは、対応するWebMethodに対して指定されている期間の属性に基づく Web サービスの出力応答の結果をキャッシュします。

注: ASP.NET 2.0 では、テスト ページの HTTP メソッドは POST を GET からに変更されました。ただし、投稿は、通常はキャッシュされません。変更する場合は、テスト ページを使用する ASP.NET 2.0 Web サービス アプリケーションを得るには、キャッシュのしくみを正しくします。また、HTTP では「キャッシュなし」するキャッシュ制御ヘッダーを設定することによってサーバーのキャッシュを無効にできるユーザー エージェント (ブラウザーまたは呼び出し元のアプリケーション) である必要があることを示しますしたがって、ASP.NET アプリケーションは、「キャッシュなし」ヘッダーを見つけたとき、キャッシュされた結果を無視します。

要件

推奨されるハードウェア、ソフトウェア、ネットワーク インフラストラクチャ、および必要なサービス パックは、次のとおりです。
  • Microsoft Windows 2000 Professional、Microsoft Windows 2000 Server、Microsoft Windows 2000 Server、または Microsoft Windows XP を高度な。
  • Microsoft.NET Framework
  • Microsoft インターネット インフォメーション サービス (IIS) の

新しい ASP.NET Web サービス アプリケーションを作成します。

WSCacheSample をという名前の新しい ASP.NET Web サービス アプリケーションを作成します。

  1. Visual Studio .NET を起動します。
  2. [ファイル] メニューで、新規作成] をポイントし、プロジェクトを新しいプロジェクト ウィザードを開始] をクリックします。
  3. [プロジェクトの種類Visual C#を選択します。[テンプレート] で、 ASP.NET Web サービスを選択します。
  4. [場所] ボックスで、名前に置き換えます"web サービスで「URL パスにプロジェクトWSCacheSampleの。ローカル サーバーを使用している場合のままにサーバー名 http://localhost、 [場所] ボックスに次のように見えるようにします。
    http://localhost/WSCacheSample

サンプルの Web サービスを作成します。

  1. ソリューション エクスプ ローラーで、プロジェクト ノードを右クリックし、追加] をポイントし、[ Web サービスの追加] をクリックします。
  2. 名には、 CacheDemo.asmxを入力し、し、[開く] をクリックします。Web サービスは、デザイン ビューで開きます。
  3. Web サービスを右クリックし、コードの表示] をクリックします。
  4. CacheDemo.asmx.cs クラス ファイルに次のコードを追加します。これは、 WebMethod属性を 60 秒間のCacheDurationGetCacheEntryTimeをという名前を追加します。
    [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());
    }

    : 既定では、 WebMethod属性のCacheDuration 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 Developer Network (MSDN) Web サイトを参照してください。
  6. Visual Studio .NET IDE で、 [ビルド] メニューの [ソリューションのビルドをクリックします。
  7. [ファイル] メニューの [すべてを保存、プロジェクトと関連ファイルを保存するをクリックします。

プロジェクトをテストします。

サンプルのCacheDemoの Web サービスを作成したら、これで、 CacheDuration属性の設定の効果を確認するのにはGetCacheEntryTimeWebMethodを実行します。
  1. ソリューション エクスプ ローラーでは、 CacheDemo.asmxを右クリックし、ブラウザーで表示] をクリックします。

    .Asmx ファイルをブラウザーで開くし、 GetCacheEntryTimeWebMethod属性は、ページの上部にある箇条書きの項目として表示されます。
  2. GetCacheEntryTimeのリンクをクリックします。
  3. メソッドの [名前] ボックスでは、 Joeを入力し、 WebMethod属性を実行し、XML の結果を返す呼び出し] をクリックします。メッセージで返されるタイムスタンプを確認します。

    : ページが表示されない場合は、web サービスのヘルプは、Web ブラウザーの [アドレス] ボックスで次を入力して、 web サービスメソッドを実行することができます。
    http://localhost/wscachesample/cachedemo.asmx/GetCacheEntryTime?Name=Joe
  4. Joeを入力して、 WebMethodを再度実行します。: 60 秒間CacheDuration属性によって指定されている期間に、 WebMethod属性を実行すると、同じタイムスタンプが表示されます。
  5. 手順 4 を繰り返しますが、ジョーではなく、西村さんWebMethod属性のパラメーターの名前] ボックスに入力します。

    タイム スタンプの結果が異なることに注意してください。これは、既定の出力結果をキャッシュは、 WebMethod属性のパラメーターに基づいているために発生します。この例では、入賀さんは、最初の 2 つのテストでは、パラメーターの値と 2 番目のテストでは、キャッシュされた出力が返されます。西村さんを使用して、3 番目のテストで、新しい結果が表示されます。60 秒後にテストを実行する場合、キャッシュされた出力結果が表示されます。出力キャッシュ バージョンの違いは、 WebMethod属性のパラメーターに関連しています。

トラブルシューティング

Web サービスの出力キャッシュを実装するかどうかを決定する際は、そのサーバーのリソースが悪影響を及ぼす、要求に関連付けられているWebMethod属性のパラメーターが大きく異なる場合や、応答には大量のデータが含まれる場合に注意してください。

関連情報

WebMethodAttribute.CacheDurationプロパティとWebMethodAttributeクラスの詳細については、.NET Framework クラス ライブラリのドキュメントでは、次のトピックを参照してください。Web サービスの詳細については、次の MSDN Web サイトを参照してください。
ASP.NET を使用して作成した XML Web サービスの設計ガイドライン
http://msdn2.microsoft.com/en-us/library/w8excbb0(vs.71).aspx

WebMethod 属性を使用してください。
http://msdn2.microsoft.com/en-us/library/byxd99hx(vs.71).aspx
その他のサンプル、ドキュメント、および.NET Framework でのプログラミングに関連するリンクでは、次の CodePlex の Web サイトを参照してください。
プロパティ

文書番号:318299 - 最終更新日: 2017/02/01 - リビジョン: 1

フィードバック