次の方法で共有


チュートリアル : Visual Web Developer での ASP.NET Web サービスの作成と使用

更新 : 2007 年 11 月

Microsoft Visual Studio では、Web ページの作成だけでなく、ASP.NET XML を使用する Web サービスの作成も可能です。Visual Studio で Web サービスを作成する方法は、Web ページを作成する方法と似ています。また、Microsoft Visual Web Developer Web 開発ツールを使用して、ローカル コンピュータ上やローカルまたは外部の UDDI ディレクトリ内に置かれている Visual Web Developer ソリューション内の Web サービスを参照して使用できます。このチュートリアルでは、あるソリューションで Web サービスを作成し、別のソリューションでこれを使用します。

このチュートリアルでは、以下のタスクを行います。

  • Visual Web Developer で単純な XML Web サービスを作成します。

  • この Web サービスを使用する別の Web サイトを作成します。

前提条件

このチュートリアルを実行するための要件は次のとおりです。

  • Microsoft Internet Information Services (IIS) がローカル コンピュータにインストールされていること。

IIS ルート下への Web サービスの作成

次の手順に従って、新しい Web サービスおよびページを作成します。

8wbhsy70.alert_note(ja-jp,VS.90).gifメモ :

このチュートリアルでは、IIS Web サイトを使用する必要があります。

Web サービスを作成するには

  1. Visual Web Developer を開きます。

  2. [ファイル] メニューの [新しい Web サイト] をクリックします

    [新しい Web サイト] ダイアログ ボックスが表示されます。

  3. [Visual Studio にインストールされたテンプレート] の [ASP.NET Web サービス] をクリックします。

  4. [参照] をクリックします。

  5. [ローカル IIS] をクリックします。

  6. [既定の Web サイト] をクリックします。

  7. [新しい Web アプリケーションの作成] をクリックします。

    新しい IIS Web アプリケーションが作成されます。

  8. 「TemperatureWebService」という名前を入力します。

  9. [開く] をクリックします。

    [新しい Web サイト] ダイアログ ボックスが表示され、右端の [場所] ボックスには新しい Web サイトの名前が表示されます。場所には、プロトコル (http://) と場所 (localhost) が含まれます。これは、ローカルの IIS Web サイトを使用していることを示します。

  10. [言語] ボックスで、作業に使用するプログラミング言語をクリックします。

    選択したプログラミングは、この Web サイトの既定値になります。ただし、複数の異なるプログラミング言語でページやコンポーネントを作成することにより、同じ Web アプリケーションで複数の言語を使用できます。複数の異なる言語を使用してコンポーネントを作成する方法の詳細については、「ASP.NET Web サイト内の共有コード フォルダ」を参照してください。

  11. [OK] をクリックします。

    新しい Web サービスが作成され、既定の Web サービスである Service という名前の新しいクラスが開きます。ただし、次の手順では、指定した名前で新しい Web サービスを作成するため、Service クラスは使用しません。

  12. Service クラスを閉じます。

Web サービスの作成

温度を華氏から摂氏および摂氏から華氏に変換する Web サービスを作成します。

Web サービスを作成するには

  1. ソリューション エクスプローラで、Web サイト名 (https://localhost/TemperatureWebService) を右クリックし、[新しい項目の追加] をクリックします。

  2. [Visual Studio にインストールされたテンプレート] の [Web サービス] をクリックします。次に、[名前] ボックスに「Convert」と入力します。

  3. [別のファイルにコードを書き込む] チェック ボックスがオンであることを確認し、[追加] をクリックします。

    2 つのファイルで構成される新しい Web サービスが作成されます。Convert.asmx ファイルは Web サービス メソッドを呼び出すときに使用するファイルであり、Web サービスのコードを指しています。コード自体は、App_Code フォルダ内のクラス ファイル (プログラミング言語に応じて Convert.vb、Convert.cs、または Convert.jsl) に記述されています。コード ファイルには、Web サービスのテンプレートが記述されています。コード ファイルには、Web サービス メソッドのコードも記述されています。

Web サービスの 2 つのメソッドを作成します。最初のメソッドは温度を華氏から摂氏に変換します。2 つ目のメソッドは温度を摂氏から華氏に変換します。

変換メソッドを作成するには

  1. クラスの内部で HelloWorld メソッドの後に次のコードを追加します。

        <System.Web.Services.WebMethod()> _
    Public Function FahrenheitToCelsius(ByVal Fahrenheit As Double) _
            As Double
            Return ((Fahrenheit - 32) * 5) / 9
        End Function
    
        <System.Web.Services.WebMethod()> _
            Public Function CelsiusToFahrenheit(ByVal Celsius As Double) _
                As Double
            Return ((Celsius * 9) / 5) + 32
        End Function
    
    [System.Web.Services.WebMethod()]
    public double FahrenheitToCelsius(double Fahrenheit)
    {
        return ((Fahrenheit - 32) * 5) / 9;
    }
    
    [System.Web.Services.WebMethod()]
    public double CelsiusToFahrenheit(double Celsius)
    {
        return ((Celsius * 9) / 5) + 32;
    }
    

    関数宣言の一部として、関数名の前に属性が指定されています ([System.Web.Services.WebMethod()] または <System.Web.Services.WebMethod()>)。

  2. 関数を入力後、ファイルを保存します。

これで、Visual Web Developer で Web サービスをテストできるようになりました。

Web サービスをテストするには

  1. ソリューション エクスプローラで、Convert.asmx をクリックし、Ctrl キーを押しながら F5 キーを押します。

    Web サービスが呼び出され、この Web サービスによって公開されているメソッドを示すページがブラウザに表示されます。

  2. [CelsiusToFahrenheit] をクリックして、このメソッドを呼び出します。

    CelsiusToFahrenheit メソッドのパラメータ値の入力を求めるページが表示されます。

  3. [Celsius] ボックスに「100」と入力し、[起動] をクリックします。

    新しいウィンドウが表示されます。このウィンドウには CelsiusToFahrenheit メソッドが呼び出されたときに Web サービスが返す XML が表示されます。値 212 が XML に表示されます。

  4. メソッドの結果が表示されているブラウザを閉じます。

  5. 元のブラウザで [戻る] をクリックして、メソッドの一覧に戻ります。

  6. [FahrenheitToCelsius] をクリックして、期待したとおりの結果がこのメソッドから返ることをテストします。

    「212」と入力すると、FahrenheitToCelsius メソッドから 100 が返ります。

  7. ブラウザを閉じます。

Web サービスの作成が終わりました。次の手順では、この Web サービスを使用します。

Web サービスの使用

Web サービスの作成が終わったので、この Web サービスを参照して使用する Web サイトを作成します。このチュートリアルでは、先ほど作成した Web サービス メソッドを開始するページのある別の Web サイトを作成します。

Web サービスを使用する Web サイトを作成するには

  1. [ファイル] メニューの [新しい Web サイト] をクリックします

  2. [Visual Studio にインストールされたテンプレート] の [ASP.NET Web サイト] をクリックします。

  3. [参照] をクリックします。

  4. [ローカル IIS] をクリックします。

  5. [既定の Web サイト] をクリックします。

  6. [新しい Web アプリケーションの作成] をクリックします。

    新しい IIS Web アプリケーションが作成されます。

  7. 「TemperatureWeb」という名前を入力します。

  8. [開く] をクリックします。

  9. [言語] ボックスで、作業に使用するプログラミング言語をクリックします。

  10. [OK] をクリックします。

    新しいローカル IIS Web サイトと Default.aspx という名前の新しいページが作成されます。

コンポーネントとしての Web サービスの追加

Web サービスは、アプリケーションで参照できるコンポーネントです。したがって、これに対する参照を作成する必要があります。

Web サービスへの参照を作成するには

  1. [Web サイト] メニューの [Web 参照の追加] をクリックします。

    [Web 参照の追加] ダイアログ ボックスが次のスクリーン ショットのように表示されます。

    [Web 参照の追加] ダイアログ ボックス
    [Web 参照の追加] ダイアログ ボックス

  2. [URL] ボックスに次の Web サービスの URL を入力し、[移動] をクリックします。

    https://localhost/TemperatureWebService/Convert.asmx

    Web サービスが見つかると、この Web サービスに関する情報が [Web 参照の追加] ダイアログ ボックスに表示されます。

    8wbhsy70.alert_note(ja-jp,VS.90).gifメモ :

    Web サービスへの参照を追加できない場合は、プロキシ サーバーが適切に構成されていない可能性があります。Microsoft Internet Explorer で、[ツール] メニューの [インターネット オプション] をクリックします。次に、[接続] タブをクリックし、[LAN の設定] をクリックします。[ローカル アドレスにはプロキシ サーバーを使用しない] チェック ボックスをオンにします。さらに、Internet Explorer で自動的にプロキシ サーバーを検出するのではなく、プロキシ サーバーのアドレスをプロキシ サーバーの正確な名前に設定します。詳細については、ネットワーク管理者に問い合わせてください。

  3. メソッドのリンクの 1 つをクリックします。

    メソッドのテスト ページが表示されます。

  4. [参照の追加] をクリックします。

    App_WebReferences フォルダが作成され、このフォルダの中に新しい Web 参照用のフォルダが追加されます。既定では、Web 参照にはサーバー名に対応する名前空間が割り当てられます (この場合は localhost)。Web 参照の名前空間の名前をメモしてください。このフォルダの中に、Web サービスを参照する .wsdl ファイルが追加されます。また、Web サービスが配置されている場所に関する情報が記述されている検索ファイル (.disco および .discomap) などのサポート ファイルも追加されます。

    8wbhsy70.alert_note(ja-jp,VS.90).gifメモ :

    Web サービスのサーバー名にクラス名として使用できないハイフン (-) などの文字が含まれている場合、このような文字は Visual Web Developer によってアンダースコア (_) に変換されます。したがって、Visual Web Developer では、Web サービスの名前空間はサーバー名と正確には一致しない場合があります。

これで Web サービスを使用できるようになりました。このチュートリアルでは、Default.aspx にコントロールを追加し、指定した温度を華氏と摂氏の両方に変換するようにコントロールをプログラミングします。実行中のページは、次の図のようになります。

温度変換ページ
VenusWebServicesWalkthroughConsumePage スクリーンショット

Web サービス メソッドを呼び出すには

  1. Default.aspx ページを開き、デザイン ビューに切り替えます。

  2. 次のコントロールをツールボックスの [標準] グループからページにドラッグし、ここに示すようにプロパティを設定します。

    コントロール

    プロパティ

    Textbox

    ID: TemperatureTextbox

    Text: (空)

    Button

    ID: ConvertButton

    Text: Convert

    Label

    ID: FahrenheitLabel

    Text: (空)

    Label

    ID: CelsiusLabel

    Text: (空)

  3. 必要に応じて、ページにキャプションのテキストを追加します。

    このチュートリアルでは、ページのレイアウトは重要ではありません。

  4. ConvertButton をダブルクリックし、その Click イベント ハンドラを作成します。

  5. イベント ハンドラのコードが、次の例のコードと一致することを確認します。

    Dim wsConvert As New localhost.Convert()
    Dim temperature As Double
    temperature = System.Convert.ToDouble(TemperatureTextbox.Text)
    FahrenheitLabel.Text = "Fahrenheit To Celsius = " & _
        wsConvert.FahrenheitToCelsius(temperature).ToString()
    CelsiusLabel.Text = "Celsius To Fahrenheit = " & _
        wsConvert.CelsiusToFahrenheit(temperature).ToString()
    
    protected void ConvertButton_Click(object sender, EventArgs e)
    {
        localhost.Convert wsConvert = new localhost.Convert();
        double temperature =
            System.Convert.ToDouble(TemperatureTextbox.Text);
        FahrenheitLabel.Text = "Fahrenheit To Celsius = " +
            wsConvert.FahrenheitToCelsius(temperature).ToString();
        CelsiusLabel.Text = "Celsius To Fahrenheit = " +
            wsConvert.CelsiusToFahrenheit(temperature).ToString();
    }
    
  6. Ctrl キーを押しながら F5 キーを押してページを実行します。

  7. テキスト ボックスに「100」などの値を入力し、[Convert] をクリックします。

    温度値を華氏と摂氏の両方に変換した結果がページに表示されます。

Web サービスのデバッグ

Web サービスは、Web ページと同じ方法でデバッグできます。

8wbhsy70.alert_note(ja-jp,VS.90).gifメモ :

Visual Web Developer Express edition と Visual Studio Standard edition では、Web サービスを参照するページから Web サービスへのステップ インはサポートしていません。Visual Web Developer Express Edition または Visual Studio Standard Edition を使用している場合は、このセクションと以降のセクションをスキップしてください。Web サイトのデバッグ方法の詳細については、「チュートリアル : Visual Web Developer での Web ページのデバッグ」を参照してください。

始めに、Web サービスを含む Web サイトを構成して、デバッグを有効にする必要があります。

Web サービスの Web サイトでデバッグを有効にするには

  1. [ファイル] メニューの [Web サイトを開く] をクリックします。

  2. [ローカル IIS] をクリックします。

  3. [TemperatureWebService] をクリックし、[開く] をクリックします。

  4. [Web サイト] メニューの [ASP.NET の構成] をクリックして、Web サイト管理ツールを開きます。

    8wbhsy70.alert_note(ja-jp,VS.90).gifメモ :

    Web サイト管理ツールを初めて実行したときは、表示されるまでに少し時間がかかります。

  5. [アプリケーション] をクリックし、次に [アプリケーション構成] をクリックします。

  6. [デバッグとトレース] の [デバッグとトレースの構成] をクリックします。

  7. [デバッグの有効化] チェック ボックスをオンにします。

    Web サイト管理ツールによって、Web サイト用の Web.config ファイルが作成され、デバッグを有効にするための構成オプションが設定されます。

    8wbhsy70.alert_note(ja-jp,VS.90).gifメモ :

    ソリューション エクスプローラで Web.config ファイルを表示するには、Web サイト名をクリックしてから、ソリューション エクスプローラでツール バーの [最新の情報に更新] をクリックします。

  8. Web サイト管理ツールを閉じます。

これで、Web サービスを使用する Web サイトをデバッグできるようになりました。

Web サイトのデバッグを有効にするには

  1. TemperatureWeb サイトを開きます。

  2. [Web サイト] メニューの [ASP.NET の構成] をクリックして、Web サイト管理ツールを開きます。

  3. [アプリケーション] をクリックし、[アプリケーション構成] をクリックします。次に、[デバッグとトレース] の [デバッグとトレースの構成] をクリックし、[デバッグの有効化] チェック ボックスをオンにします。

  4. Web サイト管理ツールを閉じます。

    8wbhsy70.alert_note(ja-jp,VS.90).gifメモ :

    ソリューション エクスプローラで Web.config ファイルを表示するには、Web サイト名をクリックしてから、ソリューション エクスプローラでツール バーの [最新の情報に更新] をクリックします。

  5. ソリューション エクスプローラで、Default.aspx を右クリックし、[コードの表示] をクリックします。

    ページのコード ファイルが開きます。

  6. 以下の行にポインタを配置します。

    temperature = System.Convert.ToDouble(TemperatureTextbox.Text)
    
    double temperature =
        System.Convert.ToDouble(TemperatureTextbox.Text);
    
  7. F9 キーを押して、この行にブレークポイントを設定します。

デバッグのテスト

Web サイトと Web サービスの両方をデバッグ用に構成したので、デバッグしてみることができます。Default.aspx ページを開始し、Web サービスが呼び出されるまでコードをステップ実行します。デバッガにより、Web サービスに切り替えてコードのステップ実行が続行されます。

ページおよび Web サービスをデバッグするには

  1. F5 キーを押して、デバッグをオンにして Default.aspx ページを実行します。

    ブラウザにページが表示されます。

  2. ボックスに「100」などの値を入力し、[Convert] をクリックします。

    ページのコードの実行が開始されますが、ブレークポイントが設定された行で実行が停止し、その行が強調表示されます。

  3. F11 キーを押すと、ステップ実行して次の行に進みます。

  4. 再度 F11 キーを押します。

    次の行で Web サービスが呼び出されるため、デバッガは Web サービスにステップ インし、FahrenheitToCelsius メソッドの最初の行で停止します。

  5. F11 キーを押し続けます。

    メソッドの残りの部分がステップ実行され、呼び出し元のページに戻ります。ステップ実行を続けると、Web サービスのステップ インに戻り、さらに CelsiusToFahrenheit メソッドにステップ インします。

  6. ブラウザを閉じます。これにより、デバッガも閉じます。

次の手順

このチュートリアルでは、ごく簡単な Web サービスを作成し、この Web サービスを ASP.NET アプリケーションで使用するという、基本的な原理を示しました。より複雑な別の Web サービス機能を試すこともできます。次に行う作業の例を示します。

参照

処理手順

チュートリアル : Visual Web Developer での Web ページのデバッグ

概念

ASP.NET を使用して作成する XML Web サービスのデザイン ガイドライン

ASP.NET を使用して作成した XML Web サービスのセキュリティ

参照

XML Web サービスでの @ WebService ディレクティブ

その他の技術情報

<webServices> 要素

ASP.NET を使用した XML Web サービス