ASP.NET 互換性ASP.NET Compatibility

このサンプルは、有効にする方法を示します。ASP.NETASP.NET互換モードでは、Windows Communication Foundation (WCF)。This sample demonstrates how to enable ASP.NETASP.NET Compatibility mode in Windows Communication Foundation (WCF). ASP.NETASP.NET 互換性モードで実行されるサービスは ASP.NETASP.NET アプリケーション パイプラインに完全に組み込まれるので、ファイルや URL の承認、セッション状態、ASP.NETASP.NET クラスなどの HttpContext の機能を使用できるようになります。Services running in ASP.NETASP.NET Compatibility mode participate fully in the ASP.NETASP.NET application pipeline and can make use of ASP.NETASP.NET features such as file/URL authorization, session state, and the HttpContext class. HttpContext クラスを使用すると、クッキー、セッション、およびその他の ASP.NETASP.NET 機能にアクセスできます。The HttpContext class allows access to cookies, sessions, and other ASP.NETASP.NET features. このモードでは、バインディングは HTTP トランスポートを使用し、サービス自体は IIS でホストされる必要があります。This mode requires that the bindings use the HTTP transport and the service itself must be hosted in IIS.

このサンプルでは、クライアントはコンソール アプリケーション (.exe) で、サービスはインターネット インフォメーション サービス (IIS) によってホストされています。In this sample, the client is a console application (an executable) and the service is hosted in Internet Information Services (IIS).

注意

このサンプルのセットアップ手順とビルド手順については、このトピックの最後を参照してください。The set-up procedure and build instructions for this sample are located at the end of this topic.

注意

このサンプルを実行するには、.NET Framework version 4.NET Framework version 4 アプリケーション プールが必要です。This sample requires a .NET Framework version 4.NET Framework version 4 application pool in order to run. 新しいアプリケーション プールの作成または既定のアプリケーション プールの変更を行うには、次の手順に従います。To create a new application pool, or to modify the default application pool, follow these steps.

  1. [コントロール パネル] を開きます。Open Control Panel. 開く、管理ツールアプレット、システムとセキュリティ見出し。Open the Administrative Tools applet under the System and Security heading. 開く、インターネット インフォメーション サービス (IIS) マネージャーアプレットします。Open the Internet Information Services (IIS) Manager applet.
    1. ツリー ビューを展開し、接続ウィンドウです。Expand the treeview in the Connections pane. 選択、アプリケーション プールノード。Select the Application Pools node.
    2. 使用する既定のアプリケーション プールを設定する.NET Framework version 4.NET Framework version 4(既存のサイトと非互換性の問題が発生する可能性があります、) を右クリックし、 DefaultAppPoolリスト項目と選択基本設定しています....To set the default application pool to use .NET Framework version 4.NET Framework version 4 (which may cause incompatibility problems with existing sites), right-click the DefaultAppPool list item and select Basic Settings…. 設定、 .Net Framework のバージョンプルダウンを .Net Framework v4.0.30128 (またはそれ以降)。Set the .Net Framework Version pull-down to .Net Framework v4.0.30128 (or later).
    3. 使用する新しいアプリケーション プールを作成する.NET Framework version 4.NET Framework version 4(互換性を保持する他のアプリケーション)、右クリックし、アプリケーション プールノードアプリケーション プールの追加しています....To create a new application pool that uses .NET Framework version 4.NET Framework version 4 (to preserve compatibility for other applications), right-click the Application Pools node and select Add Application Pool…. 新しいアプリケーション プールの名前を指定し、設定、 .Net Framework のバージョンプルダウンを .Net Framework v4.0.30128 (またはそれ以降)。Name the new application pool, and set the .Net Framework Version pull-down to .Net Framework v4.0.30128 (or later). 下、セットアップを実行する手順は、後に右クリックし、 ServiceModelSamplesアプリケーションと選択アプリケーションの管理詳細設定しています....After running the setup steps below, right-click the ServiceModelSamples application and select Manage Application, Advanced Settings…. 設定、アプリケーション プール新しいアプリケーション プールにします。Set the Application Pool to the new application pool.

重要

サンプルは、既にコンピューターにインストールされている場合があります。The samples may already be installed on your computer. 続行する前に、次の (既定の) ディレクトリを確認してください。Check for the following (default) directory before continuing.

<InstallDrive>:\WF_WCF_Samples

このディレクトリが存在しない場合に、 Windows Communication Foundation (WCF) および .NET Framework 4 向けの Windows Workflow Foundation (WF) サンプルすべて Windows Communication Foundation (WCF) をダウンロードしてWFWFサンプルです。If this directory does not exist, go to Windows Communication Foundation (WCF) and Windows Workflow Foundation (WF) Samples for .NET Framework 4 to download all Windows Communication Foundation (WCF) and WFWF samples. このサンプルは、次のディレクトリに格納されます。This sample is located in the following directory.

<InstallDrive>:\WF_WCF_Samples\WCF\Basic\Services\Hosting\WebHost\ASPNetCompatibility

このサンプルがに基づいて、作業の開始、電卓サービスを実装します。This sample is based on the Getting Started, which implements a calculator service. ICalculator コントラクトは、一連の算術演算を実行して実行結果を保持できるように ICalculatorSession コントラクトに変更されました。The ICalculator contract has been modified as the ICalculatorSession contract to allow a set of operations to be performed, while keeping a running result.

[ServiceContract(Namespace="http://Microsoft.ServiceModel.Samples")]  
public interface ICalculatorSession  
{  
    [OperationContract]  
    void Clear();  
    [OperationContract]  
    void AddTo(double n);  
    [OperationContract]  
    void SubtractFrom(double n);  
    [OperationContract]  
    void MultiplyBy(double n);  
    [OperationContract]  
    void DivideBy(double n);  
    [OperationContract]  
    double Result();  
}  

サービスはこの機能を使用して、複数のサービス操作が呼び出されて計算を実行する際に、各クライアントの状態を保持します。The service maintains state, using the feature, for each client as multiple service operations are called to perform a calculation. クライアントは Result を呼び出して現在の結果を取得したり、Clear を呼び出してその結果をクリアし、0 にすることができます。The client can retrieve the current result by calling Result and can clear the result to zero by calling Clear.

このサービスは ASP.NETASP.NET セッションを使用して、各クライアント セッションの結果を保持します。The service uses the ASP.NETASP.NET session to store the result for each client session. これにより、サービスは、サービスへの複数の呼び出しによる各クライアントの実行結果を保持できます。This allows the service to maintain the running result for each client across multiple calls to the service.

注意

ASP.NETASP.NET セッション状態と WCF セッションは、非常に異なることがあります。 session state and WCF sessions are very different things. 参照してください、セッションWCF セッションの詳細。See the Session for details on WCF sessions.

サービスは ASP.NETASP.NET セッション状態と密接な依存関係にあるので、正常に機能させるには ASP.NETASP.NET 互換性モードが必要です。The service has an intimate dependency on ASP.NETASP.NET session state and requires ASP.NETASP.NET compatibility mode to function correctly. これらの要件は、AspNetCompatibilityRequirements 属性を適用することにより宣言によって表されます。These requirements are expressed declaratively by applying the AspNetCompatibilityRequirements attribute.

[AspNetCompatibilityRequirements(RequirementsMode =  
                       AspNetCompatibilityRequirementsMode.Required)]  
public class CalculatorService : ICalculatorSession  
{  
    double Result  
    {  // store result in AspNet Session  
       get {  
          if (HttpContext.Current.Session["Result"] != null)  
             return (double)HttpContext.Current.Session["Result"];  
          return 0.0D;  
       }  
       set  
       {  
          HttpContext.Current.Session["Result"] = value;  
       }  
    }  
    public void Clear()  
    {  
        Result = 0.0D;  
    }  
    public void AddTo(double n)  
    {  
        Result += n;  
    }  
    public void SubtractFrom(double n)  
    {  
        Result -= n;  
    }  
    public void MultiplyBy(double n)  
    {  
        Result *= n;  
    }  
    public void DivideBy(double n)  
    {  
        Result /= n;  
    }  
    public double Result()  
    {  
        return Result;  
    }  
}  

このサンプルを実行すると、操作要求および応答がクライアントのコンソール ウィンドウに表示されます。When you run the sample, the operation requests and responses are displayed in the client console window. クライアントをシャットダウンするには、クライアント ウィンドウで Enter キーを押します。Press ENTER in the client window to shut down the client.

0, + 100, - 50, * 17.65, / 2 = 441.25  
Press <ENTER> to terminate client.  

サンプルをセットアップ、ビルド、および実行するにはTo set up, build, and run the sample

  1. 実行することを確認、 Windows Communication Foundation サンプルの 1 回限りのセットアップ手順です。Be sure you have performed the One-Time Setup Procedure for the Windows Communication Foundation Samples.

  2. ソリューションの C# 版または Visual Basic .NET 版をビルドするには、「 Building the Windows Communication Foundation Samples」の手順に従います。To build the C# or Visual Basic .NET edition of the solution, follow the instructions in Building the Windows Communication Foundation Samples.

  3. ソリューションがビルドされたら、Setup.bat を実行し、IIS 7.0IIS 7.0 で ServiceModelSamples アプリケーションを設定します。After the solution has been built, run Setup.bat to set up the ServiceModelSamples Application in IIS 7.0IIS 7.0. ServiceModelSamples ディレクトリは、IIS 7.0IIS 7.0 アプリケーションとして表示されます。The ServiceModelSamples directory should now appear as an IIS 7.0IIS 7.0 Application.

  4. 1 つまたは複数コンピューター構成でサンプルを実行する手順についてでWindows Communication Foundation サンプルの実行です。To run the sample in a single- or cross-computer configuration, follow the instructions in Running the Windows Communication Foundation Samples.

関連項目See Also

AppFabric ホスティングと永続性のサンプルAppFabric Hosting and Persistence Samples