チュートリアル : Visual Basic または Visual C# を使った Web サービスの作成
次のチュートリアルでは、Visual Basic または Visual C# を使って、華氏で測定した温度を摂氏に変換する Web サービスを作成する手順について説明します。
このチュートリアルでは、次の操作を行います。
ASP.NET Web サービス プロジェクト テンプレートを使用して Web サービスを作成する。
Web サービスを実装します。
Web サービスをデバッグ モードで実行する。
Web サービスを配置する。
このチュートリアルを完了するには、Web プロジェクトを作成するための要件を満たしているコンピュータにアクセスすることが必要です。詳細については、「チュートリアル : Visual Web Developer での ASP.NET Web サービスの作成と使用」を参照してください。
Web サービス プロジェクトの作成
Visual Studio には、ASP.NET Web サービス プロジェクトのテンプレートが用意されており、Visual Basic や Visual C# で Web サービスを作成するのに役立ちます。
ASP.NET Web サービス プロジェクトを作成するには
[ファイル] メニューの [新規作成] をポイントし、[Web サイト] をクリックします。
[新しい Web サイト] ダイアログ ボックスで、[ASP.NET Web サービス] アイコンを選択します。
Web サービスを開発する Web サーバーのアドレスを入力し、ディレクトリ名を TempConvert1 と指定します。たとえば、「http://MyServer/TempConvert1」と入力します。既定では、プロジェクトにはローカル コンピュータ (https://localhost) が使用されます。
メモ : プロジェクトの種類によっては、場所を指定することでプロジェクト名を設定するため、[プロジェクト名] ボックスが使用できません。たとえば、Web アプリケーションや Web サービスは Web サーバーにあり、そのサーバーで指定された仮想ディレクトリに基づいて名前が設定されます。
メモ : Web サービスは、開発サーバーで開発されます。既定では、ローカル コンピュータが開発サーバーになります。通常、プロジェクトは、開発サーバーで開発されてビルドされた後、配置プロジェクトを使って別のサーバー (Web サービスをホストする配置先のサーバー) に配置されます。ただし、Web サービスをホストするサーバー上で直接開発する場合は、開発サーバーと配置先のサーバーが同じになります。
[OK] をクリックして、プロジェクトを作成します。
Visual Studio は、Web サービスをサポートするために、自動的に必要なファイルを作成し、必要な参照を含めます。Visual Studio で Web サービス プロジェクトを作成すると、Service1.asmx のコンポーネント デザイナが表示されます。
Web サービスの実装
次の手順では、クライアントがアクセスする Web サービスの機能を実装するためのコードを作成します。Visual Studio で作成される Web サービスの場合、このコードは、Web サービスの .asmx ファイルに関連付けられた分離コード ファイル (隠しファイル) に置かれます。asmx ファイルは、Visual Studio によって作成されたものです。詳細については、「方法 : Web サービス メソッドを作成する」を参照してください。
Web サービス メソッドを追加するには
Service.vb コード ファイル内で、Service クラス宣言のコードを見つけます。クラス宣言の前に、System.Web.Services.WebService 属性コードを、次に示すコード (太字の部分) に置き換えます。
<System.Web.Services.WebService( _ Namespace:="http://Walkthrough/XmlWebServices/", _ Description:="A temperature conversion service.")> _ Public Class Service
[System.Web.Services.WebService( Namespace="http://Walkthrough/XmlWebServices/", Description="A temperature conversion service.")] public class Service : System.Web.Services.WebService
Public クラスに WebService 属性を追加することで、Web サービスの名前空間や Web サービスの記述など、Web サービスに関する追加情報を含めることができます。この属性の Description プロパティは、サービス ヘルプ ページに含まれます。詳細については、「方法 : WebService 属性を使用する」を参照してください。
Service クラスに、ConvertTemperature 関数を宣言する次のコードを追加します。
<WebMethod(Description:="This method converts a temperature in " & _ "degrees Fahrenheit to a temperature in degrees Celsius.")> _ Public Function ConvertTemperature(ByVal dFahrenheit As Double) _ As Double Return ((dFahrenheit - 32) * 5) / 9 End Function
[WebMethod(Description="This method converts a temperature in " + "degrees Fahrenheit to a temperature in degrees Celsius.")] public double ConvertTemperature(double dFahrenheit) { return ((dFahrenheit - 32) * 5) / 9; }
Public メソッドに WebMethod 属性を追加することで、Web サービスの一部としてこのメソッドを公開します。この属性の description プロパティは、サービス ヘルプ ページと、サービス メソッド ヘルプ ページに含まれます。詳細については、「方法 : WebMethod 属性を使用する」を参照してください。
ソリューション エクスプローラで Service.asmx を右クリックし、ショートカット メニューの [スタート ページに設定] をクリックします。
ソリューションを保存します。
Web サービスのデバッグ
Visual Studio には、Web サービスを IDE でビルドおよび実行するための方法が、次のとおり用意されています。
デバッグしながら実行する。
デバッグせずに実行する。
ブラウザで表示する。
この Web サービスは、Visual Studio のプロジェクトとして、リリース バージョン用とデバッグ バージョン用に個別の構成を持ちます。このプロジェクトは ASP.NET Web サービス プロジェクト テンプレートを使って作成されたため、Visual Studio は、これらの構成を自動的に作成し、既定のオプションやその他の設定値を適切に設定しました。詳細については、「方法 : デバッグ構成とリリース構成を設定する」を参照してください。
このチュートリアルでは、Web サービスにブレークポイントを設定し、デバッグしながら実行する方法を使用します。詳細については、「方法 : マネージ コードを使用して Web サービスをデバッグする」を参照してください。
デバッグを行う前に、デバッグ設定を確認します。詳細については、「デバッグの準備 : XML Web サービス プロジェクト」を参照してください。
ブレークポイントを使用して、デバッグしながら Web サービスを実行するには
[デバッグ] メニューの [ブレークポイントの作成] をポイントし、[関数でブレーク] をクリックします。
[関数] タブで、[関数] ボックスに「ConvertTemperature」と入力し、[OK] をクリックして、ConvertTemperature メソッドの宣言にブレークポイントを設定します。
[デバッグ] メニューの [開始] をクリックし、[デバッグが無効です] ウィンドウで [OK] をクリックしてデバッグを開始します。
このコマンドは、Web サービスをデバッガで実行するように Visual Studio に指示します。Visual Studio はプロジェクトをビルドし、指定されたデプロイメント サーバーに配置します。完了すると、デプロイメント サーバー上の .asmx ファイルが、既定のブラウザによって表示されます。
.asmx ファイルをブラウザで開くと、Web サービスは、Web サービスに関する情報を提供するサービス ヘルプ ページを返します。リンク文字 "サービスの説明" をクリックすると、Web サービスに関する正式なサービスの説明を含んだ XML ドキュメントが表示されます。詳細については、「XML Web サービスの説明」を参照してください。
サービス ヘルプ ページで、リンク文字 "ConvertTemperature" をクリックします。
[dFahrenheit] ボックスに、「212」と入力し、[起動] をクリックします。
処理は、ConvertTemperature 関数に到達すると停止します。Visual Studio デバッガは、ブレークポイントが含まれている行を強調表示します。プログラムを中断している間に、さまざまなタスクを行うことができます。詳細については、「デバッガのロードマップ」および「デバッガでのデータ表示」を参照してください。
[デバッグ] メニューの [続行] をクリックして、処理を続行します。
Web サービスは、変換された値を XML ドキュメントに格納し、応答として返します。次に例を示します。
<?xml version="1.0" encoding="utf-8" ?> <double xmlns="http://Walkthrough/XmlWebServices/">100</double>
Web サービスの実行を停止してコード エディタに戻るには、[デバッグ] メニューの [デバッグの停止] をクリックします。
[デバッグ] メニューの [すべてのブレークポイントの削除] をクリックします。
Web サービスの配置
他のユーザーが Web サービスを利用できるように、Web サービスは、サポート対象のクライアントがアクセスできる Web サーバーに配置する必要があります。開発サーバー以外のサーバーに Web サービスを配置するには、Web セットアップ プロジェクトを追加するか、デプロイメント サーバーに必要なファイルをコピーします。このチュートリアルでは、Web サービスの配置方法を選択できます。詳細については、「方法 : マネージ コードを使用して Web サービスを配置する」を参照してください。
Web セットアップ プロジェクトを使用して Web サービスを配置するには
[ファイル] メニューの [追加] をポイントし、[新しいプロジェクト] をクリックします。
[その他のプロジェクトの種類] ノード、[セットアップとデプロイメント] ノードの順に選択し、[Web セットアップ プロジェクト] をクリックします。
[プロジェクト名] ボックスに「TempConvert1WebSetup」と入力し、[OK] をクリックします。
メモ : 既定では、インストーラが配置先のサーバーに仮想ディレクトリを作成するときに、この配置プロジェクトの名前が使用されます。
ファイル システム エディタの左ペインで、[Web アプリケーション フォルダ] を選択します。詳細については、「ファイル システム エディタ」を参照してください。
ソリューション エクスプローラで、[TempConvert1WebSetup] を右クリックして [追加] をポイントし、[プロジェクト出力] をクリックします。
[プロジェクト出力グループの追加] ダイアログ ボックスで、[コンテンツ ファイル] を選択します。詳細については、「方法 : ファイル システム エディタでプロジェクト出力を追加および削除する」を参照してください。
- コンテンツ ファイル グループは、Web サービス用の Service1.asmx、Global.asax、および Web.config で構成されます。詳細については、「方法 : マネージ コードを使用して Web サービスを配置する」を参照してください。
[OK] をクリックします。
ソリューション エクスプローラで、TempConvert1WebSetup プロジェクトを右クリックし、ショートカット メニューの [ビルド] をクリックします。
これにより、ローカル プロジェクト ディレクトリに Windows インストーラ ファイルが作成されます。このファイルを実行すると、Web アプリケーションがインストールされます。
プロジェクトをコピーして Web サービスを配置するには
ソリューション エクスプローラで TempConvert1 プロジェクトを選択します。
[プロジェクト] メニューの [Web サイトのコピー] をクリックします。
[接続先] ボックスの横にあるアイコンをクリックして [Web サイトを開く] ダイアログ ボックスを開きます。プロジェクトをコピーする場所を検索します。
ソース Web サイト ペインでファイルを選択し、右矢印アイコンをクリックすることにより リモート Web サイト ペインにコピーおよび移動します。.
[Web サイトのコピー] をクリックして Web サイトをコピーします。
最後に、この Web サービスにアクセスするクライアント アプリケーションを作成するには、次のいずれかのトピックを参照してください。