2017年4月14日金曜日

デプロイメント方法 - .net webアプリケーション版

以前(といっても8年前になりますが・・時が経つのは早い・・)、.net webアプリケーションのデプロイメント方法の記事をアップしていましたが、リンク切れしていたり、情報が古くなっていましたので、改めてアップします。


.netジェネレーターの場合、デプロイメントツールは標準でインストールされていません。エクステンションモジュールとして追加インストールする必要があります。

1. デプロイメントツールのダウンロード

GeneXusマーケットプレースで公開されています。ダウンロードするためにはGXTechnicalアカウントにてログインが必要です。


CSharp XCopy Deploymentという名前で公開されています。(これはGeneXus社ではなくSimplifica社のArmando作です) Donloadボタンをクリックすると、それぞれのバージョンのモジュールがダウンロード可能です。ダウンロードしたzipファイルを任意のフォルダに解凍します。




2. デプロイメントツールのインストール

2-1.「ツール」→「エクステンションマネージャー」を開く

2-2.「追加」ボタンをクリック

2-3.「ローカル」タブにて、ファイルの選択ボタンをクリックし、解凍したCSharpXCopyDeployment.dllファイルを選択し、「OK」ボタンをクリックします。

2-4. dllの取込みが成功すると、エクステンションマネージャーにて「CSharpXCopyDeployment」が表示されるので、チェックボックスをONにし「変更の適用」をクリックします。適用後にGeneXusを再起動します。  


3. デプロイ

3-1.事前準備
【環境】
GeneXusでは、基本的な考え方としてジェネレート・デプロイするターゲットごとに「環境(Environment)」を作成・設定します。
例えば、「開発サーバー」「本番サーバー」と2系統ジェネレート・デプロイ先があるのであれば、環境も二つ作成し、それぞれ「Dev」「Release」といった判りやすい名前をつけましょう。
手順は以下の通りです。
①ナレッジベースナビゲータにて、「設定」→「環境」を右クリックし、新規環境を選択
②ビルドをする時に、対象となる環境を右クリックし、「アクティブにする」を選択


※本番環境(DB)がGeneXusから直接接続できないケースでは、LAN内のDBを仮の本番DBに見立てて、データベース再編成を実行します。
 この場合、DB再編成プログラムをエクスポートした後、DB接続情報を本番環境の情報に変更します。

※環境についての解説は、GeneXus教育コースでも取扱いがありませんが、開発プロジェクト・運用を考えると非常に大切な機能です。この点については別途エントリーを書くことにします。


4. データベース再編成のエクスポート

4-1.「ツール」→「CSharp Generator」→「Deployment Tools」をクリックし、デプロイメントツールを起動します。

4-2.「Export Reorganization」タブをクリック(ディフォルト表示)

4-3.「Destination folder」に出力先のディレクトリがディフォルト表示されています。
ディレクトリ名は「reorgYYYYMD」(YYYYMDはシステム日付)となっています。
一日に複数回実行する場合は、名前を変更して上書きされないように注意してください。

4-4.「Confirm」ボタンをクリックすると、指定したディレクトリにモジュールがエクスポートされます。



4-5.データベース接続情報の変更
データベース再編成プログラムをエクスポート後にデータベース接続情報を変更したい場合は「GxConfig.exe」というツールを使います。
「GxConfig.exe」はナレッジベースディレクトリ\ターゲットディレクトリ\web\binに出力されています。
標準的な環境では「C:\Models\ナレッジベース名\CSharpModel\web\bin」になります。

4-5-1.「GxConfig.exe」をデータベース再編成がエクスポートされたディレクトリにコピーします。「client.exe.config」ファイルを「web.config」へリネームします。

4-5-2.「GxConfig.exe」を起動すると以下の画面が表示されます。データベース接続情報として、「サーバー名(Server/DS)」「データベース名(Database)」「ユーザー(Name)」「パスワード(Password)」を設定し、保存します。SQLServerへ信頼関係接続(Windows認証)を使う場合は、ユーザーとパスワードを設定する必要はありません。

4-5-3.「web.config」ファイル名を「client.exe.config」へリネームします。
編集が終わったら「GxConfig.exe」は削除しても構いません。(データベース再編成処理の実行には影響ありません)
SQLServerへの認証方法を変更する場合は(SQLServer認証←→Windows認証)、web.configの内容を直接編集します。「Connection-Default-Opts」の設定値を「Integrated Security=yes」または「Integrated Security=no」に変更します。



4-6.データベース再編成の実行
4-6-1.エクスポートしたファイルを全てデプロイ先のデータベースサーバーもしくはデータベースサーバーにネットワーク的に接続可能なサーバー/PCにコピーします。

4-6-2.「Reor.exe」を実行します。
「実行」ボタンをクリックすると、対象データベースに対して、再編成処理が実行されます。

※注意1 データベース再編成処理はDDL(Data Define Language)を実行します。つまり、通常のSQL文(DML)の様にロールバックが効きません。従って、何らかの理由で再編成の途中でエラーが発生した場合は、実行前の状態には自動で戻りません。再編成を行う場合は事前に必ずデータベースのバックアップを行ってください。(GeneXusの制約事項ではなく、DBMSの仕様です)


5. Webアプリケーションのエクスポート

5-1.「ツール」→「CSharp Generator」→「Deployment Tools」をクリックし、デプロイメントツールを起動し、「Web Deployment」タブをクリックします。


5-2.「Destination folder」に出力先のディレクトリがディフォルト表示されています。
ディレクトリ名は「webYYYYMD」(YYYYMDはシステム日付)となっています。
一日に複数回実行する場合は、名前を変更して上書きされないように注意してください。
「Confirm」ボタンをクリックすると指定したディレクトリにモジュールがエクスポートされます。
設定 項目説明
Virtual Directoryデプロイ先でのIISの仮想ディレクトリ名を指定します。
OrverWriteチェックON既に同じ名前で仮想ディレクトリが存在した場合、設定を上書きします。
チェックOFF既に同じ名前で仮想ディレクトリが存在した場合、設定を上書きしません。


5-3.データベース接続情報の変更
データベース再編成と同様に、Webアプリケーションのデータベース接続情報を変更したい場合は「GxConfig.exe」を使います。
WebDeploymentにおける「GxConfig.exe」の実行に関しては、データベース再編成とフォルダ・ファイル構成が違うため、以下の2つの方法があります。
 ① 「web.config」ファイルをbinフォルダ(GxConfig.exeがあるフォルダ)にコピー(移動)し、GxConfig.exeを起動します。(データベース再編成と同様)
   この場合、web.configを修正・保存後にbinフォルダからwebフォルダへ再度コピー(移動)す
る必要があります。

 ②コマンドプロンプトから「GxConfig.exe」を実行する方法
  コマンドプロンプトを開き、WebDeploymentの出力先ディレクトリに移動します。
  「GxConfig.exe」を相対パスで実行します。
※②の方法の場合、「web.config」ファイルをコピー(移動)する必要がありません。

5-4.Webアプリケーションのデプロイ
エクスポートしたファイルをディレクトリごとコピーし、デプロイ先のサーバー/PCへ配置します。
デプロイフォルダにある「createVirtualDirectory.bat」を実行します。


エクスポート時に指定したVirtusl Directory名で仮想ディレクトリが作成されます。
又、仮想ディレクトリ作成後、ブラウザが自動的に起動し開発者メニューが表示されます。




1 件のコメント: