IIS上のWCFサービスを経由してSQL Serverからデータを取得する

IIS上のWCFサービスを経由してSQL Serverからデータを取得する際のメモ

WCFとは『Windows Communication Foundation』の略称で、分散システムを実現するためにMicrosoft が策定した通信フレームワークとのことです。最初は設定など色々めんどくさいですが、慣れれば非常簡単に、分散システムが実現できます。

1.WCFサービスプロジェクトの作成

まず最初に、Visual Studioで、WCFサービスのプロジェクトを作成する。

WCFサービスでは、どのようなサービスを提供するのか、また交換すべきデータは何なのかなどを定義する。
このようなサービスの定義は、ソース・コード上で属性(Attribute)を利用して記述する。

以下は何を提供するかを記述したインターフェースの定義。クライアントでもこのメソッドを利用する。

以下はサーバー側の実装クラス。今回はSQL Serverのデータを抽出して、クライアントに返却している。
ソースでは、DataTable.TableNameを設定しているが、これがなければ、WCFサービスが利用できない。

以下はsvcファイル。サービスの内容を記述するが、今回は別ファイル(KintaiServiceクラス)に記述している。

2.WCFサービスの配備

上記で作成したプロジェクトを、IISに配備する。まず最初にIIS上でアプリケーションを追加する。


そのあと、WCFサービスが利用できるように、ハンドラ―マッピングを起動して、svcが有効になっていることを確認する。


3.クライアントのプロジェクトの作成

クライアントのプロジェクトは、上記WCFサービスのプロジェクトを参照しプロジェクトを作成する。
今回は、Windowsフォームアプリのプロジェクトにした。
注意点は、サービスクラスの作成方法である。クライアント側では、サーバー側のKintaiServiceクラスではなくChannelFactoryクラスが生成したクラスを利用する。
また、今回はデータベースの全データを抽出するため、MaxReceivedMessageSizeの設定を行っている。この設定が行っていないと受信データ容量不足で例外が発生する。

Print Friendly, PDF & Email

シェアする

  • このエントリーをはてなブックマークに追加

フォローする