.NET 版

Version 24.2.9039


.NET 版


CData Arc の.NET 版にはスタンドアロンの組み込みWeb サーバーが同梱されていますが、IIS にホストすることもできます。このトピックでは、Windows でアプリケーションをホストするさまざまなオプションについて説明します。

IIS の使用経験がない場合は、CData は組み込みサーバーの使用を推奨します。組み込みサーバーはインストール時に自動的に配布され、ログの設定、アプリケーションをサービスとして実行、TLS / SSL の有効化などのサーバーレベルの管理タスクのシンプルなインターフェースを提供します。

組み込みサーバーの使用

このセクションでは、スタンドアロンの組み込みWeb サーバーの設定方法について示します。これには、SSL / TLS 接続およびCloud Gateway の設定、リバースSSH トンネルについての説明が含まれます。

組み込みサーバーにホストされている場合、アプリケーションはWindows サービスとして実行されます。

  1. タスクバーのCData Arc のアイコンを右クリックし、サーバーオプションをクリックします。
  2. Windows サービスとして実行を選択します。
  3. 変更を保存します。

TLS/SSL 接続のホスト(組み込みサーバー)

プレーンテキストでのサービスのほかに、TLS を要求することができます。このセクションでは、アプリケーションのWindows 版に同梱されている組み込みサーバーで、TLS/SSL 接続をホストする方法を説明します。Java 版にTLS/SSL を配布する方法は、アプリケーションをホストするJava Servlet のドキュメントを参照してください。

  1. Windows システムトレイのアプリケーションのアイコンを右クリックして、Server Options をクリックします。
  2. Web サーバータブで、TLS を有効化を選択し、TLS を扱うポートを選択します。
  3. TLS サーバー証明書ボックスの隣のボタンをクリックし、秘密鍵証明書を選択します。秘密鍵付き証明書は、ローカルコンピュータの証明書ストアにインストールする必要があります。もし、条件を満たす証明書がない場合には、新しい証明書の作成をクリックして、シンプルな証明書を作成してください。

変更を保存すると、サーバーが再起動し、TLS リクエストの処理が開始されます。

パーソナル証明書の管理

証明書選択ダイアログで使用可能な証明書は、ローカルコンピュータの証明書ストアにあります。Windows ストアに証明書を追加するには:

  1. 実行メニューでmmc を入力してMicrosoft 管理コンソールを立ち上げます。
  2. ファイル -> スナップインの追加と削除をクリックします。
  3. 利用可能なスナップインテーブルから証明書を選択し追加をクリックします。

  4. コンピューターアカウント -> ローカルコンピューターを選択します。
  5. スナップインを追加したら、証明書(ローカルコンピューター) -> 個人 -> 証明書をクリックして、利用可能な証明書を表示します。秘密鍵が利用可能な証明書には、証明書アイコンの上に鍵のアイコンが表示されます。
  6. ローカルディスクからストアに証明書をインポートするには、アクション -> すべてのタスク -> インポートをクリックします。インポートウィザードを完了すると、証明書はアプリケーションの証明書選択ダイアログにて利用可能となります。

Cloud Gateway

Cloud Gateway は、ファイアウォールを変更することなしにアプリケーションをインターネットに公開する簡単な方法を提供します。公開アクセス可能なSSH サーバーが利用できる場合に限り、SSH リバーストンネルを利用して、公開アクセス可能なSSH サーバー上のポート経由でArc にアクセスできます。

この機能を活用するには、システムトレイのアプリケーションアイコンを右クリックし、サーバーオプションをクリックします。下記のようにCloud Gateway タブに移動して、次の情報を入力します。

  • Host Arc の接続先のSSH サーバー。
  • Port SSH ホストが接続をリッスンするポート。ほとんどのSSH サーバーは、デフォルト値のポート22でリッスンします。
  • Authentication Type 使用する認証のタイプ。Arc はPassword、Public Key、Multi-Factor、およびKeyboard Interactive をサポートしています。
  • User Arc がSSH サーバーへの認証に使用するユーザー名。
  • Password 選択されたAuthentication Type で必要な場合に認証に使用するパスワード。
  • Certificate Public Key 認証する場合にArc がSSH サーバーへの認証に使用する証明書。
  • Server Fingerprint SSH サーバーのSSH ホストキーフィンガープリント。この値はread-only の情報です。
  • Forwarding Port 公開されているSSH サーバーが、Arc に転送する接続をリッスンするポート。

また、ポート開放を許可するために、SSH サーバーの設定を変更する必要がある場合があります。デフォルトのSSH サーバー設定では、非ローカルホストアドレスへのポート開放を常に有効にするとは限りません。例えば、OpenSSH サーバーに接続する場合は、SSH サーバーコンフィギュレーションファイルで、GatewayPorts プロパティをyes またはclientspecified に設定する必要があります。

情報を入力したらTest Connection をクリックしてSSH サーバーへの接続をテストし、提供された情報を確認します。成功した場合は、アプリケーションを再起動すると、SSH ホストのForwarding Port 経由でArc にアクセスできるようになります。例えば、SSH サーバー my.ssh.host を指定してForwarding Port で8401 を使用している場合、ブラウザにhttps://my.ssh.host:8401 と入力すると、通信はArc が実行されているローカルマシンに転送されます。これは、ローカルマシンに直接アクセスできなくても公開アクセスが許可されているためです。

Windows 認証

組み込みWeb サーバーはデフォルトでASP.NET フォームベース認証を使用しており、管理コンソールへのアクセスを許可するには、ユーザー名とパスワードの組み合わせをWeb フォーム(ログインポータル)に入力する必要があります。Arc はWindows / Active Directory 認証にも対応しており、特定のWindows ユーザーやセキュリティグループに対してアプリケーションのアクセスを許可することができます。

Windows 認証を有効化するには、組み込みWeb サーバーの設定UI を開き(システムトレイのArc アイコンを右クリックしてServer Options を選択)、 Web Server タブのAuthentication Type フィールドを切り替えるだけです。

デフォルトでは、Web サーバーを管理している現在のWindows ユーザーにアクセスが許可されます。アプリケーションへのアクセスを許可するユーザーとグループを設定するには、アプリケーションの設定ページユーザータブで新しいユーザーを追加します。

ユーザーは DOMAIN\Username 構文を使用してアプリケーションに追加する必要があります。グループ全体にアクセス権を付与することができないため、個別にユーザーを追加する必要があります。

IIS の使用

Arc はIIS 10 をサポートしており、システム要件では、マシンがWindows 10 またはWindows Server 2016 以降の環境を指定しています。IIS の設定で問題が発生した場合は、トラブルシューティングのセクションを参照してください。ご不明な点がございましたら、弊社のサポートフォーム よりご連絡ください。

新しいWeb アプリケーションの作成

Note: この例では、デフォルトWeb サイトを使用します。

Web サイトでアプリケーションをホストするには:

  1. IIS マネージャーで、接続パネルのサーバーのノードを展開します。
  2. サイトノードを展開し、Web サイトを右クリックして、アプリケーションの追加をクリックします。
  3. アプリケーションの追加ダイアログが表示されたら、以下の情報を入力します。
  • Alias アプリケーション名。例:”arc”
  • Application Pool アプリケーションに関連するアプリケーションプール。例では、”DefaultAppPool” を使用します。
  • Physical Path アプリケーションがインストールされているディレクトリのwww ディレクトリパス。デフォルトの場所は C:\Program Files\CData\CData Arc\www です。

ディレクトリ権限の設定

アプリケーションが完全に機能するには、Arc アプリケーションディレクトリにフルアクセスできる必要があります。

ArcESB 2021 以前のバージョンでは、アプリケーションディレクトリとインストールディレクトリはデフォルトでは同じ C:\Program Files\ArcESB\ でした。Arc の以前のバージョンからArc 2024 にアップグレードしている場合は、まだここがアプリケーションディレクトリである可能性が高いです。

Arc 2021 で、インストールディレクトリからアプリケーションディレクトリが分割されました。現在のインストールディレクトリは C:\Program Files\CData\CData Arc です。現在のアプリケーションディレクトリは C:\ProgramData\CData\Arc\ です。

アプリケーションディレクトリには次のフォルダが含まれます。

  • connectors
  • data
  • db
  • locks
  • logs
  • schemas
  • workspaces

インストールディレクトリには、以下が含まれます。

  • プログラム実行ファイル(CData.Arc.exe、arc.exe)およびコンフィギュレーションファイル
  • www フォルダとサブフォルダ
  • www_services フォルダとサブフォルダ

アクセス許可を設定するには、Arc インストール用のアプリケーションディレクトリを探して以下の手順に従います。

  1. フォルダを右クリックして、プロパティをクリックします。[セキュリティ]タブで編集 -> 追加をクリックします。
  2. 選択するオブジェクト名を入力してくださいボックスに、アプリケーションプール名を置き換えて以下のようにを入力します:IIS AppPool\[your-application-pool]。例えば、IIS AppPool\DefaultAppPool です。
  3. アプリケーションプールId が、次の権限を持っていることを確認します。

    • 読み出し
    • 書き込み
    • 変更
    • 読み出しと実行
    • フォルダコンテンツをリスト

Note:アプリケーションプールへのアクセスの許可にはコマンドラインを使うこともできます。次に例を示します。

icacls "<application directory>" /grant "IIS APPPOOL\DefaultAppPool":(OI)(M)

サーバー権限の設定

sftpserver またはftpserver を使用している場合は、アプリケーションプールに、サーバー用に構成したルートディレクトリに対する正しい権限が設定されていることを確認する必要があります。ルートディレクトリをアプリケーションディレクトリパスの子として作成した場合、親となるアプリケーションディレクトリとそのサブフォルダに権限を設定すれば十分です。

アプリケーションプロセスのアンローディングの防止

IIS は、アイドルタイムアウト超過、アプリケーションプールのリソース使用が高すぎる場合など、Web アプリケーションをいくつかの理由でシャットダウンすることがあります。これにより、アプリケーションのバックグラウンドタスクが実行されなくなる可能性があります。次の設定を変更することで、アプリケーションを常時実行しておくことができます。

  1. オプションのApplication Initialization 機能を有効化します。

    Windows Server 2016では、サーバーマネージャーを開き、ダッシュボード -> クイックスタート -> 役割と機能の追加をクリックします。役割と機能の追加ウィザードが開きます。「サーバーの役割」のステップで、Web サーバー(IIS)-> アプリケーション開発 -> Application Initialization をクリックします。

    Windows 10 では、コントロールパネルを開いて、プログラムと機能 -> Windows の機能の有効化または無効化をクリックします。インターネットインフォメーションサービス -> World Wide Web サービス -> アプリケーション開発機能 -> Application Initialization をクリックします。

  2. IIS マネージャーで、接続パネルのアプリケーションプールをクリックします。

  3. ワークスペースで、アプリケーションプールを右クリックし、詳細設定をクリックします。

  4. 全般設定の、開始モードAlwaysRunning に設定します。

  5. プロセスモデル設定では、アイドルタイムアウトプロパティを0 に設定します。

  6. CPU セクションでは、制限間隔プロパティを0 に設定します。

  7. リサイクルセクションでは、定期的な期間(分)0 に設定します。

  8. リサイクルセクションのリサイクルイベントログエントリの生成ノードでは、定期的な期間プロパティをFalse に設定します。OK ボタンをクリックします。

  9. IIS マネージャーに戻ってWeb サイトを右クリックし、Web サイトの管理 > 詳細設定をクリックします。

  10. 全般設定で、有効化されたプリロードTrue に設定して、OK をクリックします。これで、リサイクル後すぐにアプリケーションが起動するようになります。

ASP.NET アプリケーションプールのリサイクル設定

IIS は定期的にリサイクルし、ASP.NET アプリケーションプールのプロセスをクリーンアップします。リサイクルをオフピーク時にスケジュールすることもできます。リサイクルセクションに移動してSpecific TimeTrue に設定し、リサイクルする時間をhh:mm:ss 形式で入力します。

アプリケーションのプリロード

IIS のプリロード機能は、ユーザーが接続する前にアプリケーションを実行することで、パフォーマンスを向上させることができます。この機能を有効にするには、接続ペインで、Arc に関連しているWeb アプリケーションを右クリックし、アプリケーションの管理 -> 詳細設定を選択します。「有効化されたプリロード」メニューで、True を選択します。

「有効化されたプリロード」がTrue に設定されている場合、IIS はユーザーリクエストをWeb サイトのデフォルトページ、または仮想ディレクトリにシミュレートして、アプリケーションを初期化します。

設定の確認

アプリケーションを開くには、http://localhost/arc に移動します。エラーが発生した場合は、トラブルシューティング を参照してください。

TLS/SSL 接続のホスト(IIS)

取引先とあなたのビジネスクリティカル・ミッションクリティカルな通信の機密を保持するためにTLS/SSL を使用できます。次の手順では、すでにお客様のサーバーにTLS/SSL を有効化させるための証明書を持っていることが前提となっています。

  1. IIS マネージャーの接続ペインでWeb サイトのノードをクリックします。
  2. 操作ペインでバインドをクリックします。
  3. 追加 をクリックし、HTTPS を選択します。
  4. サーバー証明書を選択します。
  5. TLS/SSL を要求したい場合には、Web サイトのノードが選択されている状態で、ワークスペースで「SSL/TLS 設定アイコン」をダブルクリックします。SSL/TLS が必要を選択して、操作ペインで適用をクリックします。

トラブルシューティング

次のセクションは、いくつかの共通して発生するエラーの解決方法を説明します。

ログアウトして、しばらく経つとアプリケーションが応答しなくなる

IIS が、お客様のアプリケーションのタイムアウト後にアンロードしている可能性があります。デフォルトで、IIS は20分間動きがない場合にアプリケーションにアサインされたワーカープロセスを終了します。この機能を回避する方法については、アプリケーションプロセスのアンローディングの防止を参照してください。

http://localhost/application にアクセスすると、”Page Cannot Be Displayed” エラー(HTTP 404 エラー)が返される

ASP.NET が有効になっていない可能性があります。favicon.ico のような静的な画像(例えば、http://localhost/arc/favicon.ico)は正常に閲覧できるのに、login.rst が閲覧できない場合は、ASP.NET が有効化されていない可能性が高いです。

IIS で、コントロールパネル -> プログラム(もしくはプログラムと機能) -> Windows 機能の有効化または無効化 -> インターネットインフォメーションサービス -> World Wide Web サービス -> アプリケーション開発機能を選択します。ASP.NET の隣のチェックボックスにチェックを入れます。

親レベルでセクションがロックされている

ロックは、デフォルト(overrideModeDefault=”Deny”)、もしくはoverrideMode=”Deny”、やレガシーでallowOverride=”false” ロケーションタグで明示的に設定されているかが原因です。

このエラーはASP.NET がインストールされていない場合に発生します。

ユーザー管理

初めてArc を起動する際、ユーザー名 / パスワードの資格情報を持つユーザーの作成を求められます。最初のユーザーが作成されると、設定ページユーザータブで、ユーザーの追加、削除、および管理を行うことができます。

ユーザーの管理とロールの詳細については、ユーザーロールを参照してください。

アプリケーションディレクトリの設定

Arc のアプリケーションディレクトリフォルダには、アプリケーションで使用されるすべてのデータ(設定データ、アプリケーションデータ、ログデータ、証明書など)が格納されます。アプリケーションディレクトリはデフォルトで次の場所にあります。

C:\ProgramData\CData\Arc

アプリケーションディレクトリは別のフォルダに設定することもでき、これは次のようなシナリオで役立ちます。

  • Arc の複数インスタンスのクラスタリング
  • アプリケーションデータ用の共有ネットワークドライブの使用
  • 同じフォルダにアクセスする他のシステム内へのArc の組み込み

アプリケーションディレクトリを変更するとアプリケーションのデータファイルは移動しますが、.exe や.jar などのその他のアプリケーションリソースは移動しません。

アプリケーションディレクトリの変更

カスタムアプリケーションディレクトリを設定するには、インストールディレクトリ内のwww フォルダにあるWeb.Config ファイルを開きます。ファイルの一番下にある<appSettings> タグの中に次の値を見つけます。

<add key="AppDirectory" value="C:\ProgramData\CData\Arc" />

value に続く引用符の中のテキストを、新しいアプリケーションディレクトリに置き換えます。これは、アプリケーションが読み取りと書き込みの権限を持つ、任意のローカルまたはネットワークパスにすることができます。

アプリケーションデータベースの設定

Arc のアプリケーションデータベースは、以下のようなアプリケーションデータの複数のテーブルを保存します。

  • トランザクションログ(アプリケーションによって処理される各トランザクションのメタデータ)
  • アプリケーションログ(アプリケーションレベルのエラーとイベント)
  • アクセスログ(アプリケーションのWeb エンドポイントへのリクエスト)
  • 監査ログ(ユーザーによるArc の設定変更)

デフォルトではArc はインストールディレクトリにあるSQLite データベースをアプリケーションデータベースとして使用しますが、SQL Server、PostgreSQL、MySQL などのエンタープライズデータベースを使用するように設定できます。

アプリケーションデータベースは、インストールディレクトリのwww フォルダにあるWeb.Config ファイルで構成されます。このファイルには、コメントアウトされたAppDb ブロックがあり、以下のconnectionStrings タグが記述されています。ターゲットデータベースの接続文字列とプロバイダー名を、’AppDb’ キーに設定します。

接続文字列の設定

以下のセクションでは、Web.Config ファイルでさまざまなサーバー設定を行った場合の接続文字列の例を示します。これらの値はプレーンテキストで設定することも、暗号化された接続文字列を生成してconnectionString 値に使用することもできます。

SQL Server

<connectionStrings>
   <add name="AppDb" connectionString="server=localhost;database=sqlserver;user=MyUserName;password=MyPassword;" providerName="System.Data.CData.SQL" />
</connectionStrings>

Note:アプリケーションデータベースとしてSQL Server を使用する際のデッドロックの可能性を減らすため、CData ではREAD_COMMITTED_SNAPSHOT が有効化されていることの確認を推奨しています。

MySQL

<connectionStrings>
   <add name="AppDb" connectionString="server=localhost;database=appdb;user=MyUserName;password=MyPassword;" providerName="System.Data.CData.MySQL" />
</connectionStrings>

PostgreSQL

<connectionStrings>
   <add name="AppDb" connectionString="server=localhost;port=5432;database=postgres;user=postgres;password=MySecretPassword;" providerName="System.Data.CData.PostgreSQL" />
</connectionStrings>

暗号化されたデータベース接続文字列の生成

Arc は、アプリケーションのデータベース接続用に暗号化された接続文字列を生成する機能を提供します。この暗号化された接続文字列を使用することで、Arc 設定ファイルにログイン認証情報をプレーンテキストで保存することなく、アプリケーションデータベースを指定することができます。暗号化された接続文字列を生成するには、CData.Arc.exe があるインストールディレクトリで、接続情報を文字列の例の末尾に置き換えて、以下のコマンドを発行します。

CData.Arc.exe -EncryptConnectionString server=serverName;database=databaseName;user=userName;password=passwordSample;

コマンドを発行すると、コマンドウィンドウに暗号化された文字列が出力されます。次に例を示します。

ENCRYPTEDA:XuUY73BQHKdzWn52z6AqLvZ7uG6jlwkcsQL8yGM8sQ2Znfm1HwG6BpH+LP92mGBBCQX2/IWMal2V5a1AujfltOwResXjAijDzxJ7JmvgUt4=

接続文字列の設定で示したように、この暗号化された文字列をconnectionString のプレーンテキスト値の代わりに使用することができます。

ログインのロックアウト設定

ブルートフォースアタックを防ぐために、Arc は不正なパスワードを何度も入力するユーザーを自動的にロックアウトします。デフォルトでは、5分以内に6回不正なパスワードを入力したユーザーは、7回目の試行に失敗すると30分間ロックアウトされます。

これらの設定は、インストールディレクトリのwww フォルダにあるWeb.Config ファイルを編集することで変更できます。ロックアウトに関連する設定は3つあります。

  • LockoutFailedAttempts:ロックアウトのトリガーとなる不正なパスワードの数(ロックアウトを無効にするには0に設定)
  • LockoutMinutes:ロックアウトする時間(デフォルトは30分)
  • LockoutTimeCheckPeriod:失敗した試行回数を0にリセットするまでの時間(デフォルトは5分)

これらはそれぞれWeb.Config ファイルの<appSettings> タグで設定できます。例えば、以下のスニペットはロックアウトを無効にします。

<appSettings>
     <add key="LockoutFailedAttempts" value="0"/>
</appSettings>