読者です 読者をやめる 読者になる 読者になる

酢ろぐ!

カレーが嫌いなスマートフォンアプリプログラマのブログ。

Visual Studio 2008でASP.NET WebサービスとWebサービスを利用したクライアントアプリケーションの作成の仕方

ASP.NET

本記事では、Visual Studio 2008にて、VB.NETを使ってASP.NET Web サービスアプリケーションと、それにアクセスする為のクライアントアプリケーションの作成する方法をご紹介します。

ソリューションの作成

まずは、Visual Studioで空のソリューションを作成します。ソリューション名はここでは「WebServiceSolution」としましょう。

Webサービスプロジェクトの作成

f:id:ch3cooh393:20140723145840p:plain

新しいプロジェクトの追加を選択し、テンプレートウィザードから「ASP.NET Webサービス アプリケーション」を選択します。プロジェクト名は「SAK01」とします。

プロジェクトが作成できれば、早速F5キーを押してデバッグ開始します。「http://localhost:1735/Service1.asmx」にアクセスすると、こんな機能を使用することができますよというページが表示されます。

f:id:ch3cooh393:20140723145701p:plain

本記事では、Visual Studio 2008を使用していますが、Visual Studio 2003の場合は、F5キーでデバッグ実行で即アクセスするページを閲覧することはできず、パスを決めた上でIIS上で仮想ディレクトリを作成して、「http://localhost/SAK01」にアクセスする事で、初めてWebサービスを使用する事が可能となっていました*1

SAK01プロジェクトの配下に「Service1.asmx」というファイルがありますので、コードを表示します。

'<WebMethod()> _  
'Public Function HelloWorld() As String  
'   Return "Hello World"  
'End Function

サンプルコードのコメントアウトを解除して、SAK01プロジェクトのビルドをおこないます。ソリューションエクスプローラーにて、Service1.asmxを右クリックしブラウザで表示させる。この時、URLは「http://localhost/SAK01/Service1.asmx」となっており、正常に画面が表示されればWebサービスが使用可能です。

クライアントアプリケーションの作成

次に、先ほど作成したWebサービスにアクセスする、クライアントアプリケーションを作成しましょう。

f:id:ch3cooh393:20140723145632p:plain

新しいプロジェクトの追加を行い、テンプレートウィザードからWindowsアプリケーションを選択します。プロジェクト名は「SAK01Client」で作成しました。

Web参照の追加 をおこなう

f:id:ch3cooh393:20140723145600p:plain

ソリューションエクスプローラーにて、SAK01ClientプロジェクトからWeb参照の追加を行います。

f:id:ch3cooh393:20140723145535p:plain

URLは先程作成したWebサービスのURL「http://localhost/SAK01/Service1.asmx」を指定します。

「このURLで見つかったWebサービス」の欄に、以下のように表示されているのを確認します。

1 個のサービスが見つかりました :
- Service1

Web参照名はデフォルトのまま「参照の追加」を実行します。

クライアント側の実装

Form1.vbをデザイナの表示で開き、ボタンを貼り付けてButton1のClickイベントハンドラを作成します。Clickイベントハンドラ内にて、追加したWebサービスを使用します。

Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click

     ' Webサービスオブジェクトの生成
     Dim webService As New SAK01Client.localhost.Service1

     ' Webメソッド"HelloWorld"を実行
     Dim respMessage As String = webService.HelloWorld()

     ' 結果を表示する
     MessageBox.Show(respMessage)

End Sub

先ほど作成したWebサービスが起動した状態で、ボタンをクリックして下記の図の様にHelloWorldが表示されれば、Webサービスを利用したクライアントの作成に成功です。

f:id:ch3cooh393:20140723145505p:plain

お疲れ様でした。

*1:2013/5/22追記 この段落の記載は、当時何を伝えたかったのか、何を想定して書いていたのかよく分かりません……。おそらく「アクセスすること」がトリガーとなってWebサービスが起動するのかもしれません