MapForce にて C#  Web サービスを生成

www.altova.com このトピックを印刷 1つ上のレベル

ホーム > 

MapForce にて C#  Web サービスを生成

チュートリアルフォルダー内に収められている query.wsdl ファイルにはコメントアウトされたセクションがあります。<Service name="WS2DB"> というセクションがそれで、ファイルの終端部にあります。このセクションをアンコメントし、その直前にある <Service> セクションをコメントアウトします。この例ではウェブサーバーがローカルのコンピューターで動作していることを前提にしています。

 

メモ:

AXIS2 (Java) と IIS (C#) の URI スキーマは互いに異なっており、WSDL ファイル内にて変更を行う必要があります。変更は、通常 WSDL ファイルの終端部にある <service> 要素にて行われます。

 

AXIS2 スタイルの WSDL:

 <service name="WS2DB">

         <port name="WS2DBSoapPort" binding="tns:WS2DBSoapBinding">

                 <soap:address location="http://localhost:8080/axis/services/WS2DB"/>

         </port>

 </service>

 

IIS スタイルの WSDL:

 <service name="WS2DB">

         <port name="WS2DBSoapPort" binding="tns:WS2DBSoapBinding">

                 <soap:address location="http://localhost/services/WS2DB.asmx"/>

         </port>

 </service>

 

サンプル WSDL ファイルには両方のバージョンが収められており、そのうちどれか 1 つがコメントアウトされています。WSDL サンプルファイルには "soapAction" パラメーターが含まれており、このパラメーターは IIS で必須となりますが、 AXIS2 では無視されます。

 

C# コードを生成する:

前のセクションで使用した Query Person database.mfp プロジェクトファイルを作成します(又は開きます)。

1.メニューオプションから「プロジェクト | コードの生成 | C#」を選択します。
2.出力ディレクトリ(この場合は java-dev)を選択し、「OK」 をクリックして生成を行います。

"処理が問題なく行われた場合、「C# コードの生成に成功しました」というメッセージが表示されます。生成に失敗した場合、詳細なエラーメッセージが表示されます。

 

ターゲットディレクトリには、C# コード、プロジェクトファイルならびにソリューションファイルを含む複数のサブディレクトリが自動的に生成されます。

 

wsd-csharp-dirs

 

生成されたプロジェクトは Visual Studio 2008, 2010, 2013, 2015, 2017 にてコンパイルすることができます。

 

Web サービスをコンパイルする:

メモ: IIS 7.x とともに Visual Studio 2008 を使用している場合、 「IIS メタベースおよび IIS 6 構成の互換性」 ("IIS Metabase and IIS 6 Configuration Compatibility") という Windows の機能をインストールする必要があります。更に、Visual Studio を管理者として起動する必要があります。

 

以下に記されるステップは、ローカルマシンにウェブサーバーがあることを前提にしています。リモートコンピューターに対して Web サービスのコンパイルを行うには、関連する Microsoft のドキュメンテーションを参照ください(例: http://learn.iis.net/page.aspx/387/using-visual-studio-2008-with-IIS/)。

 

1.生成されたソリューションファイルを開きます(例: ...\output\Query_Person_database\Query_Person_database_webservice.sln.)。
2.メニューオプションから「ビルド | ソリューションのビルド」を選択し、 Web サービスプロジェクトをコンパイルします。
3.メニューオプションから「デバッグ | デバッグ開始」を選択し、アプリケーションを起動します。

 

64ビットのオペレーティングシステムを使用していて、(32ビットアプリケーションに対してしか提供されていない)ADO プロバイダーが無いためにサンプルを使用することができない場合、以下の操作を行うことができます。

 

 

1.Visual Studio のメニューオプションから「ビルド | 構成マネージャー」を選択し、x86 に対する新たなソリューションプラットフォームを作成し、ビルドを行います。
2.Internet Information Services (IIS) マネージャーを開き、作成中のアプリが格納されている「アプリケーションプール」を検索し、。右クリックして表示されるコンテキストメニューから「詳細設定」を選択し、32ビットアプリケーションの有効化にて "True" を選択してください。

 

 

Web サービスを使用する:

1.XMLSpy のような WSDL クライアントを使用して、SOAP リクエストを送信します。
2.メニューオプションから「「SOAP | 新規 SOAP リクエストを作成」を選択します。
3.IIS サーバー上にある WSDL ファイルの場所を入力して、「OK」 をクリックします。
4.使用する SOAP オペレーション名(この例では "getPerson(string Query)")を選択し、「OK」 をクリックして SOAP リクエストドキュメントを作成します。.

<Query xsi:type="xsd:string">String</Query> がクエリのプレースホルダになり、データベースにて検索される文字列が含まれています。

 

wsd-deploy-check3

 

ここでは "Ro" という文字列が First または Last 内に含まれている全従業員の名前を検索します。

4.String という文字列を Ro に変更します。

 

wsd-deploy-check4

 

5.メニューオプションから「「SOAP | サーバーにリクエストを送信」を選択して、サーバーへリクエストを送信します。

Web サービスにより SOAP レスポンスドキュメントが返され、Access データベースから4人の従業員名が帰ってくることが確認できます。


(C) 2019 Altova GmbH