Visual Studio 2005 でのサーバー ファイルの設定
サーバー ファイルとは、IIS サーバー上のレポートを公開するレポート Web サービスの集合を指します。本来、サーバー ファイルは、Visual Studio .NET 2002 で Crystal Reports の Crystal サービス ノードとして提供されましたが、その後このノードは削除されています。これ以降のバージョンの Crystal Reports は SDK でサーバー ファイルをサポートしていますが、各バージョンでサーバー ファイルのいくらかの設定作業が必要です。
サーバー ファイルは、基になるレポート ファイルから生成されます。このレポート ファイルは、Web サーバーのファイル ディレクトリにあるサンプル レポート フォルダ(またはユーザーが指定したフォルダ)に保存されます。
サーバー ファイルを設定する
Visual Studio 2005 または 2008 のサーバー ファイルを設定するには、次の 2 つの手順を実行する必要があります。まず、レポートを公開するレポート Web サービスを作成します。次に、新しい Web サービスに対応する web.config ファイルを変更します。Visual Studio 2005 では、Visual Studio .NET 2002 のサーバー ファイルの設定フォルダを廃止し、web.config ファイルへの設定エントリの追加を推奨しています。
各プロジェクトの web.config ファイルには、1 回に 1 つずつ設定エントリを入力できます。ただし、その代わりにこの設定エントリをレポート Web サービスが含まれている仮想ディレクトリにある web.config ファイルに追加することをお勧めします。
サーバー ファイルに必要なレポート Web サービスを作成する
Visual Studio を起動します。
[ファイル]メニューの[新規作成]を選択し、次に[Web サイト]をクリックします。
[新しい Web サイト]ダイアログ ボックスで、[言語]リストから[Visual C#]を選択します。
テンプレートのリストから[ASP .NET Web サービス]をクリックします。
[場所]フィールドで、デフォルトのプロジェクト名をユーザー指定のプロジェクト名に置き換えます。
この例では、プロジェクトに CrystalReportsWebServices という名前を付けて C:\InetPub\wwwroot\ に保存します。
C:\InetPub\wwwroot\CrystalReportsWebServices\
[OK]をクリックします。
[デバッグ]メニューの[デバッグ開始]をクリックします。
ダイアログ ボックスが表示され、Web.config ファイルの変更が必要であることが示されます。[OK]ボタンをクリックしてデバッグを有効にします。
デバッグが完了したら、アプリケーションに戻ります。
ソリューション エクスプローラで、Service.asmx を右クリックし、[削除]をクリックします。
ソリューション エクスプローラで、App_Code フォルダを展開して Service.cs を右クリックし、[削除]をクリックします。
ソリューション エクスプローラで太字のプロジェクト名を右クリックし、[新しい項目の追加]をクリックします。
[新しい項目の追加]ダイアログ ボックスで、次の手順を実行します。
- [インストールされたテンプレート]フィールドから、[Web サービス]を選択します。
- [名前]フィールドに、「ServerFileReportService.asmx」と入力します。
- [別のファイルにコードを書き込む]をアンチェックします。
- [追加]をクリックします。
ServerFileReportService.asmx ファイルの内容を次の行で置き換えます。
<%@ WebService language="C#" class="CrystalDecisions.Web.Services.ServerFileReportService" %>
[ファイル]メニューの[すべて保存]をクリックします。
ソリューション エクスプローラで太字のプロジェクト名を右クリックし、[新しい項目の追加]をクリックします。
[新しい項目の追加]ダイアログ ボックスで、次の手順を実行します。
- [インストールされたテンプレート]フィールドから、[Web サービス]を選択します。
- [名前]フィールドに、「ServerFileReportManager.asmx」と入力します。
- [別のファイルにコードを書き込む]をアンチェックします。
- [追加]をクリックします。
ServerFileReportManager.asmx ファイルの内容を次の行で置き換えます。
<%@ WebService language="C#" class="CrystalDecisions.Web.Services.ServerFileReportManager" %>
[ファイル]メニューの[すべて保存]をクリックします。
web.config ファイルにサーバー ファイル設定エントリを追加する
ソリューション エクスプローラから、Web.Config ファイルを開きます。
Web.config ファイル全体の内容を次の XML で置き換えます。
次の例では、ルート ディレクトリの値をレポートが格納されているディレクトリに変更します。この例では、ファイル パスは C:\program files\Microsoft Visual Studio 8\Crystal Reports\Samples\jp\Reports\Feature Examples に設定されます。
<?xml version="1.0"?> <configuration xmlns="https://schemas.microsoft.com/.NetConfiguration/v2.0"> <configSections> <sectionGroup name="crystalDecisions"> <section name="serverFileReportManager" type="System.Configuration.NameValueSectionHandler, System, Version=1.0.3300.0, Culture=neutral, PublicKeyToken=b77a5c561934e089, Custom=null"/> </sectionGroup> </configSections> <crystalDecisions> <serverFileReportManager> <add key="rootDirectory" value="C:\program files\Microsoft Visual Studio 8\Crystal Reports\Samples\jp\Reports\Feature Examples"/> </serverFileReportManager> </crystalDecisions> <appSettings/> <connectionStrings/> <system.web> <compilation debug="true"> <assemblies> <add assembly="CrystalDecisions.Web, Version=12.0.2000.0, Culture=neutral, PublicKeyToken=692FBEA5521E1304"/> </assemblies> </compilation> </system.web> </configuration>
注 PUT_FILE_DIRECTORY_PATH_TO_REPORTS_FOLDER_HEREが含まれているレポート フォルダへのファイル ディレクトリ パスを入力する必要があります。レポート フォルダへのパスについては、「サンプル レポートのディレクトリ」を参照してください。
web.config ファイルへの変更を保存します。
ビューアの仮想ディレクトリが機能することを確認するには、ブラウザを開き、公開されたレポート Web サービスへの URL を入力します。
https://localhost/CrystalReportsWebServices/ServerFileReportService.asmx?wsdl
古いサーバー ファイルとビューアの仮想ディレクトリ
以前のバージョンの Crystal Reports では、サーバー ファイルは、ビューアの仮想ディレクトリにある集中 Web サービスから IIS 経由で提供されました。これ以降のバージョンの Crystal Reports は、IIS で“ビューアの仮想ディレクトリ”という名前で追加のディレクトリが作成されます。これにより、Crystal Reports の複数のバージョンを維持できます。
前のバージョンの Crystal Reports を使用してプロジェクトのサーバー ファイルをコード化し、その後で Crystal Reports のバージョン アップを行う場合には、追加された“ビューアの仮想ディレクトリ”がメンテナンス上の問題になります。使用するコードで、各 ServerFileReport インスタンスの WebServiceURL プロパティに格納されている“ビューアの仮想ディレクトリ”の名前を、現在のレポート Web サービスの場所に変更し、ServerFileReport インスタンスを有効にする必要があります。
注 |
---|
各バージョンの“ビューアの仮想ディレクトリ”の名前をパスを確認するには、「ビューアの仮想ディレクトリ」を参照してください。 |
ServerFileReport インスタンスの WebServiceURL プロパティで“ビューアの仮想ディレクトリ”を変更する
プロジェクトで、ServerFilesReport インスタンスの WebServiceURL プロパティが割り当てられているビューアの仮想ディレクトリを探します。
コードで現在割り当てられているビューアの仮想ディレクトリの名前を、以前のバージョンで使用されていたビューアの仮想ディレクトリの名前と比較します。
詳細については、「ビューアの仮想ディレクトリ」を参照してください。
ユーザーの最高位にインストールされている Crystal Reports のバージョンで使用されているビューアの仮想ディレクトリ名を変更します。
ユーザーの最高位にインストールされている Crystal Reports のバージョンが Crystal Reports for Visual Studio 2005 の場合、このチュートリアルの前半で作成したレポート Web サービスのパスを入力します。
再コンパイルを行い、レポートが正しくロードすることを確認します。
関連項目
-
この節では、Crystal Reports SDK の基本について説明します。基本を理解することにより、プロジェクトの構成についての計画を立てやすくなります。