7

私の要件は、「データベース ファイルのロックは、アプリケーション プロセス内から実行されるすべてのアクションが許可され、サード パーティのアプリケーション/サービス アクセスのみがブロックされるような方法で行われます」です。アプリケーションの実行後にサードパーティのソフトウェアがデータベース ファイルをロックしないようにするには、すべてのデータベース ファイルを明示的にロックして、それを防止する必要があります。

背景:私はデスクトップアプリケーションとsql ceをデータベースとN-hibernateとして使用しています。アプリが頻繁に実行され、その時点でシステム バックアップを実行するバックアップ ソフトウェアなどのサード パーティ製ソフトウェアを実行している場合、db ファイルがロックされます。

そのため、アプリの起動時の要件として、アプリケーション内のスレッドまたはアクションがデータベース上のすべての操作を実行するように、データベース ファイルをロックする必要がありますが、サード パーティの操作は制限する必要があります。

FileLock でサンプルを試してみましたが、N-hibernate を介してデータベース操作を実行すると、アプリで失敗します。これについて私を助けてください。もしそうなら、これは本当に達成可能です。

4

3 に答える 3

0

File.Open破棄せずに書き込み操作に使用すると、通常、ファイルのロックが維持されます。他のユーザーは書き込みはできませんが、読み取ることはできます。

于 2012-09-18T15:54:47.120 に答える
0

新しいアカウント/ユーザーを作成します。ファイル許可をこのユーザーのみに上書きします。この新しく作成されたユーザーにアプリケーションを偽装します。その結果、他のユーザーはあなたのファイルを使用できなくなります。

于 2012-09-18T17:11:30.830 に答える
-1

SQLCE がいつからデスクトップ アプリケーションのサポートを開始したかはわかりません。私はSQLiteを使用することを好みます。sqlite プロバイダーのみを使用して、データベース ファイルのロックをネイティブにサポートします。それをチェックしてください。詳細が必要な場合はお知らせください。

于 2013-01-09T06:53:00.083 に答える