問題:
同じLAN内の異なるPC(OS:Windows XP、Windows 7)で実行されている同じC#アプリケーションの複数のインスタンスがあります。それらの間でいくつかの構成データを共有する必要があります。各プロセスには、データへの読み取り/書き込みアクセス権が必要です。私の雇用主は、これらの共有データを、これらのPCの1つの共有ディレクトリにあるファイルに保存することを主張しています。
可能な解決策:
- 排他的ファイルオープン:データはTXTファイルに保存されます(バイナリファイルとの間のシリアル化もオプションです)。各プロセスは、ファイルを開こうとするときにを使用
File.Open
します。FileShare.None
取得するIOException
ということは、ファイルがすでに使用されていることを意味するため、プロセスは待機して、後で再試行する必要があります。 - SQL Server CE組み込みDB:データはSDFファイルに保存されます。エンジンは最大256の同時接続(v3.5 SP2)を処理できますが、これで十分です。
- SQLite組み込みDB:データはSQLiteDBファイルに保存されます。ドキュメントにはSQLiteは機能すると記載されていますが、ネットワーク共有で使用すると信頼性が低下する可能性があります。
- 他の?
これを行うための好ましい方法は何ですか?