どのような状況で、システム プロセス (PID 4) は開いているファイル ハンドルを保持しますか?
質問
Windows サーバー上で実行されているアプリケーションは Jet/Access データベースを使用します。何らかの理由で、約 2 週間ごとにデータベース ファイルがシステム プロセスによってロックされます (PID 4、修正されているようです)。
いくつかグーグルで調べたところ、他のユーザーがその特別なプロセスによってファイルをロックしていることがわかりましたが、(もちろん)別のファイルでした。
- システム プロセスがファイル ハンドルを開いたままにする一般的な理由は何ですか?
- このロック状況の原因は私のアプリケーションにあるのでしょうか?
- すべてのハンドルはシステム プロセスによって暗黙的に開かれますか?プロセスがクラッシュした後もハンドルが開いたままになっており、システム プロセスが何らかの形でそのハンドルの所有権を取得している可能性があると想像できます。
- この問題の発生を防ぐためにアプリケーションで何かを行うことはできますか?
解決
このは漏れやすいハンドル付きドライバレベルの問題のように私に聞こえるます。
あなたは無効にする(一時的に!)、または別のブランドに切り替え、アンチウイルスパッケージにtryアップグレードを実行している場合。
他のヒント
ファイルは、システム処理(PID 4)によってロックされます。
compmgmt.msc
を開いてみてください - > のシステムツールの - > の共有フォルダの - > のオープン・ファイルのロックされたファイルがそこにリストされているかどうかを確認します
道のためにも、のSysinternalsフォーラムを参照してください。これを複製する。
それらが開かれていないときに、すべてのアプリケーションがファイルをロックし、Excelは、しかし、ありません。アクセスが同じなければ、私は知らない...
私が見つけた別の考えられる原因は次のとおりです。
Windows 7 にはバグがあり、おそらく Windows Server 2008 (おそらく 64 ビット バージョンのみ) にもバグがあります。無効にすると表示されます アプリケーションエクスペリエンス サービスを利用すると、質問で説明されているのと同じ問題が発生します。
このサービスを再度有効にすると、この問題は解決しました。
もう少し詳しい情報 ここ なぜそれが問題を引き起こすのかについて。
関連すると思われる他の SO 質問のリスト:
これは、共有フォルダにリモートコンピュータから残留セッションであってもよいです。そのような場合、それは、コマンドラインからロックを解除することができます:
net session /delete
あなたのサーバが定期的にファイルのバックアップを実行するように設定されていますか。
もしそうなら、あなたは競合を取得するときに、おそらくロックされたファイルを促し、システムとして実行されているバックアップのですか?
私にとって、それは "Windows Defenderの"(アンチウイルス)でした。私は私のVisual Studioは、それがチェックしたフォルダのWindows Defenderの者のリストからフォルダを構築除外し、問題が去っていきました。 (Visual Studioは、PID 4はviriiをチェックするために、それをロックされたEXEファイルを構築することができませんでした)。
私のために私はハンマーで叩いする必要がありました。フォルダが配置されたドライブ上でchkdsk / fが、それを修正しました。注意して使用します。
各フォルダとサブフォルダのセキュリティ設定を確認してください。システムはちょうど自動的に誰でもファイルを削除することはできません特別な権限の設定を作成していないことを確認します。どうやらOSが削除されたファイルを保護奇妙な特別な許可の設定を作成します。
いくつかの奇妙な理由で