.NET 版

Version 24.3.9159


.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 認証にも対応しており、特定のWindows ユーザーやセキュリティグループに対してアプリケーションのアクセスを許可することができます。

埋め込みWeb サーバーでWindows 認証を有効にする前に、Arc へのアクセスが必要なすべてのユーザーをArc アプリケーションに追加する必要があります。すべてのWindows AD Arc ユーザー名は、次の構文を使用する必要があります: DOMAIN\Username 。次の画像で構文が示されています。

Note:グループ全体にアクセス権を付与することができないため、個別にユーザーを追加する必要があります。

次に、Windows 認証を有効化するには、組み込みWeb サーバーの設定UI を開き(システムトレイのArc アイコンを右クリックしてServer Options を選択)、’Web Server’ タブのAuthentication Type フィールドを切り替えるだけです。変更を保存をクリックします。これにより、Web サーバーとアプリケーションが再起動します。

以降、Arc に追加されたWindows AD ユーザーが自分のマシンにログオンし、ブラウザでArc に移動すると、自動的にログインされます。

IIS の使用

Arc はIIS 10 をサポートしており、システム要件では、マシンがWindows 10 またはWindows Server 2016 以降の環境を指定しています。IIS の設定で問題が発生した場合は、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 に移動します。エラーが発生した場合は、IIS のトラブルシューティングを参照してください。

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

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

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

Windows 認証

Configuring Arc to use Windows Authentication when Arc is hosted in IIS is similar to the configuration required to use the .NET embedded web server.However, instead of making changes inside the embedded web server, you make the necessary changes inside IIS.

To set up Windows Authentication when Arc is hosted in IIS, follow these steps:

1.Log into Arc and add all Windows AD Users who need access to Arc to the application.Windows AD Arc user names must use the following syntax: DOMAIN\Username.
Note:You must add users individually, because an entire group cannot be granted access to the application. 2.Open IIS to stop the site that is configured for Arc.Right-click on the site and select Manage Website > Stop. 3.Click the Arc site to open the Home page.Select Authentication under the IIS section.
A screen appears listing a set of authentication methods.Right-click Forms Authentication and select Disable.This turns off the default authentication method that requires logging in with a username and password. 4.Right-click Windows Authentication and select Enable. 5.Restart your site in IIS.

Note:You might need to edit your Windows Authentication providers in IIS so IIS no longer prompts you for a username and password when accessing Arc.To do this from the IIS authentication settings, right-click Windows Authentication and select Providers.A list of providers opens:

Ensure that NTLM is at the top of the list so that provider has priority when Arc is authenticating.You might need to completely remove Negotiate to stop the username and password requests.

Once Windows Authentication has been correctly configured in IIS, when you access the application you are automatically logged into Arc as the logged in Windows AD user.

IIS のトラブルシューティング

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

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

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>