チュートリアル : Web サービスの間接的な接続の表現
ASP.NET Web サービスは、クラス ライブラリに記述されたビジネス関数のファサードとして使用されます。分散システム デザイナは、アプリケーション ダイアグラム上でクラス ライブラリをデザインまたは表現する機能をサポートしていませんが、ASP.NET アプリケーションが参照するクラス ライブラリに実装された動作とアプリケーション ダイアグラムに表現された他のアプリケーションとの対話は、ASP.NET アプリケーションで適切な設定ファイルのエントリを作成すると、アプリケーション デザイナで表すことができます。次の手順では、その設定方法を説明します。この手順は、ASP.NET アプリケーションのコードを生成して実装した後に完了します。
アプリケーション ダイアグラムでクラス ライブラリ プロジェクトを表現するには
-
アプリケーション ダイアグラムを開きます。
-
ASP.NETWebService アプリケーションをダイアグラムに追加し、MyWebService という名前を付けます。Web サービスのエンドポイント ラベルを選択し、エンドポイントに FirstWebService という名前を付けます。
-
MyWebService を実装します。
クラス ライブラリと接続する Web サービスが作成されます。Web サービスはここでビルドします。
-
ASP.NETWebApplication をダイアグラム、MyWebApplication に追加して実装します。クラス ライブラリの関数を使用して、前の手順でビルドした Web サービスにアクセスするクライアント Web アプリケーションが作成されます。
-
ASP.NETWebApplication を選択して右クリックし、[設定および制約] をクリックして設定および制約エディタを開きます。
-
[アプリケーションの設定]、[WebApplication]、[構成] を選択します。次に、[NetSectionGroup] を右クリックして [リソースの追加] をポイントし、[SettingsSection] をクリックします。
このリソースを追加すると、web.config がソリューション エクスプローラに表示されます。
メモ :
Web アプリケーションのプロジェクト ファイルとコード ファイルを生成して実装し、既定の web.config 設定を設定および制約エディタで直接編集するか、アプリケーション ダイアグラム上で別のアクションを実行して間接的に編集するまで、web.config ファイルはソリューション エクスプローラでは利用できません。たとえば、Web アプリケーションを外部 Web サービスや外部データベースに接続すると、web.config は間接的に変更されます。
-
ソリューション エクスプローラでソリューション ノードを右クリックし、[新しいプロジェクトの追加] をクリックします。
[新しいプロジェクトの追加] ダイアログ ボックスが表示されます。
-
[プロジェクトの種類] の [Visual Basic] または [Visual C#] を選択し、[Windows] を選択します。[テンプレート] の [クラス ライブラリ] を選択し、[OK] をクリックします。
-
ソリューション エクスプローラでクラス ライブラリ プロジェクトを選択して右クリックし、[Web 参照の追加] をクリックします。
[Web 参照の追加] ダイアログ ボックスが表示されます。
-
[このソリューションの Web サービス] をクリックします。
-
[このソリューションの Web サービス] で追加した MyWebService Web サービスをクリックし、[参照の追加] をクリックします。
既に作成した Web サービスへの Web 参照がクラス ライブラリに作成されます。
-
クラス ライブラリをビルドします。
クラス ライブラリ プロジェクトに app.config ファイルが作成されます。
-
[MyWebApplication] Web アプリケーション プロジェクトを選択して右クリックし、[参照の追加] をクリックします。
[参照の追加] ダイアログ ボックスが表示されます。
-
ダイアログ ボックスの [プロジェクト] タブをクリックし、クラス ライブラリ プロジェクトを選択します。[OK] をクリックします。
-
Web アプリケーション プロジェクトの web.config ファイルを開きます。
-
クラス ライブラリ プロジェクトの app.config ファイルを開きます。
-
app.config の applicationSettings セクション グループをコピーし、web.config に貼り付けます。configSections 要素もコピーされたことを確認します。このセクション グループは、次のように記述されています。
<configSections> <sectionGroup name="applicationSettings" type="System.Configuration.ApplicationSettingsGroup, System, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" > <section name="ClassLibrary1.Settings" type="System.Configuration.ClientSettingsSection, System, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" /> </sectionGroup> </configSections>
-
app.config の applicationSettings セクションをコピーし、configSections の下にある web.config に貼り付けます。applicationSettings セクションは、次のように記述されています。
<applicationSettings> <ClassLibrary1.Settings> <setting name="ClassLibrary1_localhost_WebService1" serializeAs="String"> <value>http://localhost:1665/MyWebService/FirstWebService.asmx</value> </setting> </ClassLibrary1.Settings> </applicationSettings>
web.config の先頭は、次のように記述されています。
<configuration xmlns="http://schemas.microsoft.com/.NetConfiguration/v2.0"> <configSections> <sectionGroup name="applicationSettings" type="System.Configuration.ApplicationSettingsGroup, System, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" > <section name="ClassLibrary1.Settings" type="System.Configuration.ClientSettingsSection, System, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" /> </sectionGroup> </configSections> <appSettings> </appSettings> <applicationSettings> <ClassLibrary1.Settings> <setting name="ClassLibrary1_localhost_WebService1" serializeAs="String"> <value>http://localhost:1665/MyWebService/FirstWebService.asmx</value> </setting> </ClassLibrary1.Settings> </applicationSettings> <connectionStrings/> <system.web>
-
ソリューションをビルドし、アプリケーション ダイアグラムを表示します。
-
コンシューマ エンドポイントが MyWebApplication Web アプリケーションに表示されます。コンシューマ エンドポイントは MyWebService の FirstWebService Web サービスのエンドポイントに接続されています。このエンドポイントは、クラス ライブラリ プロジェクトの Web 参照から Web サービスへの接続を表しています。