.Net 版
Version 22.0.8483
Version 22.0.8483
.Net 版
CData Sync のWindows 版にはスタンドアロンの組み込みWeb サーバーが同梱されていますが、IIS にホストすることもできます。このセクションでは、Windows でアプリケーションをホストするさまざまなオプションについて説明します。
IIS を触った経験がない場合は、組み込みサーバーを使うことを推奨します。組み込みサーバーはインストール時に自動的に配布され、ログの設定、アプリケーションをサービスとして実行、SSL/TLS の有効化などのサーバーレベルの管理タスクのシンプルなインターフェースを提供します。
組み込みサーバーでのホスティング
このセクションでは、スタンドアロンの組み込みWeb サーバーの設定方法について示します。これには、TLS/SSL 接続のホスト の方法およびCloud Gateway の設定、リバースSSH トンネルについてを含みます。
スタンドアロンサーバーにホストされている場合、アプリケーションはWindows サービスとして実行されます。
- タスクバーの Sync のアイコンを右クリックし、サーバーオプションをクリックします。
- Windows サービスとして実行を選択します。
- 変更を保存します。
TLS/SSL 接続のホスト(組み込みサーバー)
プレーンテキストでのサービスのほかに、TLS を要求することができます。このセクションでは、アプリケーションのWindows 版に同梱されているスタンドアロンサーバーで、TLS/SSL 接続をホストする方法を説明します。Java 版 にTLS/SSL を配布する方法は、アプリケーションをホストするJava Servlet のドキュメントを参照してください。
- Windows システムトレイのアプリケーションのアイコンを右クリックして、サーバーオプションをクリックします。
- Web サーバータブで、TLS を有効化を選択し、TLS を扱うポートを選択します。
- TLS サーバー証明書ボックスの隣のボタンをクリックし、秘密鍵証明書を選択します。秘密鍵付き証明書は、ローカルコンピュータの証明書ストアにインストールする必要があります。もし、条件を満たす証明書がない場合には、新しい証明書の作成をクリックして、シンプルな証明書を作成してください。
変更を保存すると、サーバーが再起動し、TLS リクエストの処理が開始されます。
秘密証明書の管理
証明書選択ダイアログで使用可能な証明書を管理したい場合には、ローカルコンピュータの秘密証明書ストアにあります。Windows ストアに証明書を追加するには:
- 実行メニューから、mmc を入力してMicrosoft 管理コンソールを立ち上げます。
- ファイル -> スナップインの追加と削除をクリックします。
-
利用可能なスナップインテーブルから証明書を選択し追加をクリックします。
- コンピューターアカウント -> ローカルコンピューターを選択します。
- スナップインを追加したら、証明書(ローカルコンピューター) -> 個人 -> 証明書をクリックして、利用可能な証明書を表示します。秘密鍵が利用可能な証明書には、証明書アイコンの上に鍵のアイコンが表示されます。
- ローカルディスクからストアに証明書をインポートするには、アクション -> すべてのタスク -> インポートをクリックします。インポートウィザードを完了すると、証明書はアプリケーションの証明書選択ダイアログにて利用可能となります。
Cloud Gateway
Sync のCloud Gateway 機能は、ファイアウォールを変更することなしにアプリケーションをインターネットに公開する簡単な方法を提供します。公開アクセス可能なSSH サーバーが利用できる場合に限り、SSH リバーストンネルを利用して、公開アクセス可能なSSH サーバー上のポート経由でSync にアクセスできます。
この機能を活用するには、システムトレイのアプリケーションアイコンを右クリックし、サーバーオプションをクリックします。下図で示されるようにCloud Gateway タブに進み、次の情報を入力します。
Host
はSync の接続先のSSH サーバーを示します。Port
は、SSH ホストが接続をリッスンしているポートを示します。ほとんどのSSH サーバーは、デフォルト値のポート22でリッスンします。Authentication Type
は、使用する認証のタイプを示します。Password、Public Key、Multi-Factor、および_Keyboard Interactive_ がサポートされています。User
は、Sync がSSH サーバーへの認証に使用するユーザー名を示します。Password
は、使用されているAuthentication Type で必要な場合、認証に使用するパスワードを示します。Certificate
は、Public Key Authentication で、Sync がSSH サーバーへの認証に使用する証明書を示します。Server Fingerprint
は、SSH サーバーのSSH ホストキーフィンガープリントを示します。この値はread-only の情報です。Forwarding Port
は、公開されているSSH サーバーが、Sync に転送する接続をリッスンするポートを示します。
さらに、SSH サーバーの設定を変更して、ポート開放を許可する必要がある場合があります。デフォルトのSSH サーバー設定では、非ローカルホストアドレスへのポート開放を常に有効にするとは限りません。例えば、OpenSSH サーバーに接続する場合は、SSH サーバーコンフィギュレーションファイルで、GatewayPorts プロパティをyes またはclientspecified に設定する必要があります。
この情報を入力したら、接続テストをクリックしてSSH サーバーへの接続をテストし、提供された情報の正当性を確認します。成功した場合は、アプリケーションを再起動すると、SSH ホストのForwarding Port 経由でSync にアクセスできるようになります。
例えば、SSH サーバー_my.ssh.host_ が指定されていて、Forwarding Port で8401 を使用している場合、ブラウザにentering https://my.ssh.host:8401
と入力すると、通信はSync が実行されているローカルマシンに転送されます。これは、ローカルマシンに直接アクセスすることはできないが公開アクセスが許可されているためです。
Windows 認証
組み込みWeb サーバーはデフォルトでASP.NET のフォームベース認証を使用しており、管理コンソールへのアクセスを許可するには、ユーザー名とパスワードの組み合わせをWeb フォーム(すなわちログインポータル)に入力する必要があります。また、Sync はWindows / Active Directory 認証をサポートしており、特定のWindows ユーザーやセキュリティグループにアプリケーションのアクセス権を付与できます。
Windows 認証を有効化するには、組み込みWeb サーバーの設定UI を開き(システムトレイのSync アイコンを右クリックしてServer Options を選択)、’Web Server’タブのAuthentication Type フィールドを切り替えるだけです。
デフォルトでは、Web サーバーを管理している現在のWindows ユーザーにアクセスが許可されます。アプリケーションへのアクセスを許可するユーザーとグループを設定するには、アプリケーションの設定ページのユーザータブで新しいユーザーを追加します。
ユーザーは_DOMAIN\Username_ 構文を使用してアプリケーションに追加する必要があります。現時点ではグループに一括でアプリケーションへのアクセス権を付与できないため、ユーザーは個別に追加する必要があります。
IIS での設定
これらの説明では、IIS およびWindows の複数のバージョンをカバーします。もし、このガイドを参照中に問題があった場合には、最後のセクションのトラブルシューティング を参照してください。もし、お客様のバージョンが本チュートリアルでカバーされていない場合には、弊社のサポートフォーム よりご連絡ください。
IIS 8、8.5、および10
新しいWeb アプリケーションの作成
Note: この例では、デフォルトWeb サイトを使用します。
Web サイトでアプリケーションをホストするには:
- IIS マネージャーで、接続パネルのサーバーのノードを展開します。
- サイトノードを展開し、Web サイトを右クリックして、アプリケーションの追加をクリックします。
- アプリケーションの追加ダイアログが表示されたら、以下の情報を入力します。
エイリアス | アプリケーション名、例えば”sync”。 |
アプリケーションプール | アプリケーションに関連するアプリケーションプール。このチュートリアルでは、”DefaultAppPool” を使用します。 |
物理パス | アプリケーションがインストールされているディレクトリのwww ディレクトリパス。このディレクトリのデフォルトの位置は、C:\Program Files\CData\CData Sync\www です。 |
ディレクトリ権限の設定
アプリケーションが完全に機能するには、Sync アプリケーションディレクトリにフルアクセスできる必要があります。
Sync 2020 以前のバージョンでは、データディレクトリとアプリケーションのインストールディレクトリは同じで、デフォルトでは C:\Program Files\CData\CData Sync
でした。Sync の以前のバージョンから Sync 2021 にアップグレードしている場合は、まだここがデータディレクトリである可能性が高いです。
Sync 2021 では、アプリケーションのインストールディレクトリからデータディレクトリが分割されました。プログラムの実行ファイルは、以前と同様C:\Program Files\CData\Sync
にインストールされます。しかし、データファイルはC:\ProgramData\CData\sync\
に移動しています。
アプリケーションディレクトリには次のフォルダが含まれます。
- connections
- data
- db
- downloads
- locks
- logs
- profiles
インストールディレクトリには、以下が含まれます。
- プログラム実行ファイル(CData.Sync.exe、CData.Exe)と設定ファイル
- www フォルダとサブフォルダ
アクセス許可を設定するには、Sync インストール用のアプリケーションディレクトリを探して以下の手順に従います。
- フォルダを右クリックして、プロパティをクリックします。[セキュリティ]タブで編集 -> 追加をクリックします。
- 選択するオブジェクト名を入力してくださいボックスに、アプリケーションプール名を置き換えて以下のようにを入力します:
IIS AppPool\\[your-application-pool]
。例えば、IIS AppPool\\DefaultAppPool
です。 -
アプリケーションプールId が、次の権限を持っていることを確認します。
- 読み出し
- 書き込み
- 変更
- 読み出しと実行
- フォルダコンテンツをリスト
Note:アプリケーションプールへのアクセスの許可にはコマンドラインを使うこともできます。次に例を示します。
icacls "www" /grant "IIS APPPOOL\\DefaultAppPool":(OI)(M)
アプリケーションプロセスのアンローディングの防止
IIS は、アイドルタイムアウト超過、アプリケーションプールのリソース使用が高すぎる場合など、Web アプリケーションをいくつかの理由でシャットダウンすることがあります。これにより、アプリケーションでバックグラウンドタスクを止めてしまうことがあります。次の設定を変更することで、アプリケーションを常時実行しておくことができます。
-
オプションのApplication Initialization 機能を有効化します。
Windows Server 2012 R2 および、Windows Server 2016では、サーバーマネージャーを開き、ダッシュボード -> クイックスタート -> 役割と機能の追加をクリックします。役割と機能の追加ウィザードが開きます。「サーバーの役割」のステップで、Web サーバー(IIS)-> アプリケーション開発 -> Application Initialization をクリックします。
Windows 8 およびWindows 10 では、コントロールパネルを開いて、プログラムと機能 -> Windows の機能の有効化または無効化をクリックします。インターネットインフォメーションサービス -> World Wide Web サービス -> アプリケーション開発機能 -> Application Initialization をクリックします。
- IIS マネージャーで、接続パネルのアプリケーションプールをクリックします。
- ワークスペースで、アプリケーションプールを右クリックし、詳細設定をクリックします。
-
全般設定の、開始モードをAlwaysRunning に設定します。
-
プロセスモデル設定では、アイドルタイムアウトを0 に設定します。
IIS 8 を使用している場合、全般設定の自動的に開始がTrue に設定されていることを確認してください。
- CPU セクションでは、LimitInterval プロパティを0 に設定します。
- Recycling セクションでは、Regular Time Interval プロパティを0 に設定します。
- Recycling セクションのGenerate Recycle Event Log Entry ノードでは、Regular Time Interval プロパティをFalse に設定します。
ASP.NET アプリケーションプールのリサイクル設定
IIS は定期的にリサイクルし、ASP.NET アプリケーションプールのプロセスをクリーンアップします。リサイクルをオフピーク時にスケジュールすることもできます。[Recycling]セクションに移動してSpecific Time をTrue に設定し、リサイクルする時間をhh:mm:ss 形式で入力します。
アプリケーションのプリロード
IIS のプリロード機能は、ユーザーが接続する前にアプリケーションを実行することで、パフォーマンスを向上させることができます。この機能を有効にするには、接続ペインで、Sync に関連しているWeb アプリケーションを右クリックし、アプリケーションの管理 -> 詳細設定を選択します。[PreloadEnabled]メニューで、True を選択します。
PreloadEnabled がTrue に設定されている場合、IIS はユーザーリクエストをWeb サイトのデフォルトページ、または仮想ディレクトリにシミュレートして、アプリケーションを初期化します。
設定の確認
アプリケーションを開くには、http://localhost/sync に移動します。エラーが出ている場合には、トラブルシューティング を参照してください。
IIS 7 および7.5
新しいWeb アプリケーションの作成
Web サイトでアプリケーションをホストするには:
Note: この例では、デフォルトWeb サイトを使用します。
- IIS マネージャーで、接続パネルのサーバーのノードを展開します。
- サイトノードを展開し、Web サイトを右クリックして、アプリケーションの追加をクリックします。
- アプリケーションの追加ダイアログが表示されたら、以下の情報を入力します。
エイリアス | アプリケーション名、例えば”sync”。 |
アプリケーションプール | アプリケーションに関連するアプリケーションプール。このチュートリアルでは、”DefaultAppPool” を使用します。 |
物理パス | アプリケーションがインストールされているディレクトリのwww ディレクトリパス。このディレクトリのデフォルトの位置は、C:\Program Files\CData\CData Sync\www です。 |
権限の設定
IIS 8、8.5、および10 以上の場合は権限の設定 を参照してください。この情報はIIS のバージョンに関係なく適用されます。
アプリケーションプロセスのアンローディングの防止
IIS は、アイドルタイムアウト超過、アプリケーションプールのリソース使用が高すぎる場合など、Web アプリケーションをいくつかの理由でシャットダウンすることがあります。これにより、バックグラウンドタスクを止めてしまうことがあります。
このバージョンのIIS はWeb アプリケーションを常時実行しておく設定をサポートしていません。アプリケーションプールが常時実行していて、バックグラウンドタスクが発生できる状態を保つことを保証するためには、繰り返しアプリケーションにHTTP リクエストを発行するスクリプトを設定しなければなりません。
IIS 7.5 では、次の設定を変更することで、アプリケーションを常時実行しておくことができます:
- IIS 7.5 のアプリケーション Initialization Extension をインストール。http://www.iis.net/download/ApplicationInitialization からダウンロードすることができます。
- IIS マネージャーで、[接続]パネルのアプリケーションプールをクリックします。
- ワークスペースで、アプリケーションプールを右クリックし、詳細設定をクリックします。
- 全般設定では、自動的に開始がTrue に設定されていることを確認してください。
- プロセスモデル設定では、アイドルタイムアウトを0 に設定します。
- CPU セクションでは、LimitInterval プロパティを0 に設定します。
- Recycling セクションでは、Regular Time Interval プロパティを0 に設定します。
- Recycling セクションのGenerate Recycle Event Log Entry ノードでは、Regular Time Interval プロパティをFalse に設定します。
- C:\Windows\System32\inetsrv\config\ に位置するApplicationHost.config ファイルのアプリケーションプールエントリーの設定を変更します。適切な
エントリに、_startMode="AlwaysRunning"_ と_autoStart="True"_ を追加します。次に例を示します。
<applicationPools>
<add name="DefaultAppPool" managedRuntimeVersion="v4.0" startMode="AlwaysRunning" autoStart="true"/>
</applicationPools>
ASP.NET アプリケーションプールのリサイクル設定
IIS は定期的にリサイクルし、ASP.NET アプリケーションプールのプロセスをクリーンアップします。リサイクルをオフピーク時にスケジュールすることもできます。[Recycling]セクションに移動してSpecific Time をTrue に設定し、リサイクルする時間をhh:mm:ss 形式で入力します。
アプリケーションのプリロード
IIS のプリロード機能は、ユーザーが接続する前にアプリケーションを実行することで、パフォーマンスを向上させることができます。この機能を有効にするには、ApplicationHost.config ファイル(C:\Windows\System32\inetsrv\config\ApplicationHost.config) を編集し、アプリケーションと関連する<application> エレメントのpreloadEnabled 属性を追加します。次の例に示すように、アプリケーションノードはサイトノードの子エレメントです。
<sites>
<site name="Default Web Site" id="1">
<application path="/sync" applicationPool="DefaultAppPool" preloadEnabled="true">
...
PreloadEnabled がTrue に設定されている場合、IIS はユーザーリクエストをWeb サイトのデフォルトページ、または仮想ディレクトリにシミュレートして、アプリケーションを初期化します。
設定の確認
アプリケーションを開くには、http://localhost/sync に移動します。エラーが出ている場合には、トラブルシューティング を参照してください。
TLS/SSL 接続のホスト(IIS)
SSL/TLS は、取引先とあなたのビジネスクリティカル・ミッションクリティカルな通信の機密を保持するために使われます。次の手順では、すでにお客様のサーバーにSSL/TLS を有効化させるための証明書を持っていることが前提となっています。
- IIS マネージャーで、接続ペインでWeb サイトのノードをクリックします。
- アクションペインでバインディングをクリックします。
- 追加 をクリックし、HTTPS を選択します。
- サーバー証明書を選択します。
- TLS/SSL を要求したい場合には、Web サイトのノードが選択されている状態で、ワークスペースで[SSL 設定アイコン]をダブルクリックします。SSL が必要を選択して、[アクション]ペインで適用をクリックします。
トラブルシューティング
次のセクションは、いくつかの共通して発生するエラーの解決方法を説明します。
ログアウトして、しばらく経つとアプリケーションが応答しなくなる。
IIS が、お客様のアプリケーションのタイムアウト後にアンロードしている可能性があります。デフォルトで、IIS は20分間動きがない場合にアプリケーションにアサインされたワーカープロセスを終了します。IIS のバージョンごとの手順中の”アプリケーションプロセスのアンローディングの防止”セクションで、この機能を回避する方法を説明しています。
IIS 7.5、8、8.5 では、IIS マネージャーで次の設定を変更することで、アプリケーションを常時実行しておくことができます。
7.5 より前のバージョンのIIS はWeb アプリケーションを常時実行しておく設定をサポートしていません。アプリケーションプールが常時実行していて、バックグラウンドタスクが発生できる状態を保つことを保証するためには、繰り返しアプリケーションにHTTP リクエストを発行するスクリプトを設定しなければなりません。
http://localhost/application にアクセスすると、”Page Cannot Be Displayed” エラー(HTTP 404 エラー)が返される。
ASP.NET が有効化されていない場合に、本事象が起こります。ASP.NET が有効になっているかどうかを確認するには、http://localhost/sync/favicon.ico にアクセスします。このページが正常にロードされた場合は、ASP.NET は有効化されていません。
IIS 7 以上で実行している場合には、コントロールパネル -> プログラム(もしくはプログラムと機能) -> Windows 機能の有効化または無効化 -> インターネットインフォメーションサービス -> World Wide Web サービス -> アプリケーション開発機能を選択します。ASP.NET の隣のチェックボックスにチェックを入れます。
Windows Server 2003 を使っている場合には、IIS マネージャーを開き、ローカルコンピューターノードを展開して、Web Service 拡張 -> ASP.NET -> 許可をクリックします。さらに、次の手順を行う必要があります。
IIS 6 かそれ以前で実行している場合、Windows のコマンドプロンプトを開き、C:\WINDOWS\Microsoft.NET\Framework\v2.0.50727 のような.NET Framework version installation に移り、aspnet_regiis -i</b>
コマンドを発行します。64-bit プロセッサーを使用している場合には、Framework をFramework64 に変えてください。アウトプットは以下のようになります:
C:\\WINDOWS\\Microsoft.NET\\Framework\\v2.0.50727>aspnet\_regiis -i
Start installing ASP.NET (2.0.50727).
...
Finished installing ASP.NET (2.0.50727).
iisreset コマンドを発行し、IIS を再起動します。アウトプットは以下のようになります:
C:\\WINDOWS\\Microsoft.NET\\Framework\\v2.0.50727>iisreset
Attempting stop...
Internet services successfully stopped
Attempting start...
Internet services successfully restarted
親レベルでセクションがロックされている。ロックは、デフォルト(overrideModeDefault=”Deny”)、もしくはoverrideMode=”Deny”、やレガシーでallowOverride=”false” ロケーションタグで明示的に設定されているかが原因です。
このエラーはASP.NET がインストールされていない場合に発生します。
IIS 8 および8.5
まずは、アプリケーションプールで使われているASP.NET CLR のバージョンを確認します。ASP.NET CLR と同じバージョンのASP.NET をインストールしている必要があります。例えば、ASP.NET4.5 はCLR version 4.0 を使用します。CLR バージョンはIIS マネージャーで[接続]パネルのアプリケーションプールをクリックすることで確かめることができます。アプリケーションプールのリストに.NET CLR バージョンが表示されます。
Windows Server 2012では、サーバーマネージャーを開き、ダッシュボード -> クイックスタート -> 役割と機能の追加をクリックします。役割と機能の追加ウィザードが開きます。Web サーバー(IIS)-> Web サーバー -> アプリケーション開発をクリックして、ASP.NET の適切なバージョンを選択します。
Windows 8 では、コントロールパネルを開いて、プログラムと機能 -> Windows の機能の有効化または無効化をクリックします。インターネットインフォメーションサービス -> World Wide Web サービス -> アプリケーション開発機能をクリックして、ASP.NET の適切なバージョンを選択します。
IIS 7 および7.5
Windows 7 では、コントロールパネルを開いて、プログラムと機能 -> Windows の機能の有効化または無効化をクリックします。インターネットインフォメーションサービス -> World Wide Web サービス -> アプリケーション開発機能 -> ASP.NET をクリックします。
Windows Server 2008では、サーバーマネージャーを開き、Add Role Services をクリックします。Web Server -> Application Development -> ASP.NET を選択します。
ユーザー管理
初めて起動する際、Sync はユーザー名およびパスワードを資格情報として持つユーザーの作成を要求します。この最初のユーザーを作成したのち、アプリケーションの設定ページのユーザータブで、ユーザーの追加、削除、および管理を行うことができます。
ユーザーの管理とロールの詳細については、ユーザーロールセクションを参照してください。
アプリケーションディレクトリの検索と設定
Sync のアプリケーションディレクトリには、アプリケーションが使用するすべてのデータが格納されます。ジョブ、接続データ、アプリケーションデータ、ログデータなどです。通常、アプリケーションディレクトリはデフォルトで次の場所にあります。
C:\ProgramData\CData\Sync
アプリケーションディレクトリは別のフォルダに設定することもでき、これはさまざまなシナリオで役立ちます。
- Sync の複数インスタンスのクラスタリング
- アプリケーションデータ用の共有ネットワークドライブの使用
- 同じフォルダにアクセスする他のシステムへのSync の組み込み
アプリケーションディレクトリを変更するとアプリケーションのデータファイルは移動しますが、.exe や.dll など、その他のアプリケーションリソースは移動しません。
Web.Config
アプリケーションディレクトリは、インストールディレクトリの’www’ フォルダ内のWeb.Config ファイルで設定されています。
このファイルには、以下のappSettings タグを記述した、コメントアウトされたAppDirectory ブロックが含まれます。appSettings の’AppDirectory’ キーに目的のアプリケーションディレクトリのパスを設定する必要があります。
アプリケーションディレクトリは、アプリケーションが読み取りと書き込みの権限を持つ、任意のローカルまたはネットワークパスに設定できます。
アプリケーションデータベースの設定
Sync のアプリケーションデータベースは、以下のようなアプリケーションデータの複数のテーブルを保存します。
- ジョブ
- タスク
- 接続
- 履歴(ジョブとタスク両方)
- アプリケーション設定
- アプリケーションログ(アプリケーションレベルのエラーとイベント)
- 監査ログ(ユーザーによるSync の設定変更)
デフォルトではSync はアプリケーションディレクトリにあるSQLite データベースをアプリケーションデータベースとして使用しますが、SQL Server、PostgreSQL、MySQL などのエンタープライズデータベースを使用するように設定できます。
Web.Config
アプリケーションデータベースは、インストールディレクトリの’www’ フォルダ内のWeb.Config ファイルで設定されています。
このファイルには、以下のconnectionStrings タグを記述した、コメントアウトされたAppDb ブロックが含まれます。ターゲットデータベースの接続文字列とプロバイダー名は、’AppDb’ キー内に設定します。
ログインのロックアウト
Sync は、ブルートフォースアタックを防ぐために、不正なパスワードを何度も入力するユーザーを自動的にロックアウトします。デフォルトでは、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>"