Les circonstances dans lesquelles se déroule le processus de système (PID 4) conserve un descripteur de fichier ouvert?

StackOverflow https://stackoverflow.com/questions/1293398

  •  18-09-2019
  •  | 
  •  

Question

Mon application en cours d'exécution sur un serveur Windows utilise une base de données Jet / Access. Pour certaines raisons autour de toutes les deux semaines que le fichier de base de données est verrouillé par le processus de système (4 PID, semble être fixe)

Après quelques googler j'ai trouvé d'autres utilisateurs ayant leurs fichiers verrouillés par ce processus spécial, mais les fichiers différents (bien sûr).

  • Quelle est la raison générale pour le processus de système pour garder un fichier ouvert?
  • Mon application est la cause de cette situation de blocage?
  • Est-ce que toutes les poignées ouvertes implicitement par le processus de système? Je ne pouvais imaginer que, après un processus est tombé en panne, la poignée peut encore être ouvert et le processus de système prend en quelque sorte de cette poignée propriétés illicites.
  • Puis-je faire quelque chose dans mon application pour l'empêcher de se produire?
Était-ce utile?

La solution

Ce me semble un problème au niveau du conducteur avec une poignée qui fuit.

Si vous utilisez un essai de package anti-virus mise à niveau, la désactivation (temporairement!) Ou de passer à une autre marque.

Autres conseils

Les fichiers accessibles par une action sera bloquée par le processus de système (PID 4).

Essayez d'ouvrir compmgmt.msc -> Outils système -> Dossiers partagés -> Ouvrir fichiers pour voir si le fichier verrouillé est listée

Voir aussi le forum Sysinternals un moyen de reproduire cela.
Toutes les applications ne verrouillez les fichiers lorsqu'ils sont ouverts, Excel ne porte toutefois. Je ne sais pas si l'accès fait la même chose ...

Voici une autre cause possible que j'ai trouvé:

Il y a un bogue dans Windows 7 et probablement dans Windows Server 2008 (peut-être des versions 64 bits uniquement). Il surfaces lorsque vous désactivez Expérience de service Application et provoque les mêmes problèmes que ceux décrits dans la question.

Réactiver ce service a résolu ce problème pour moi.

Un peu plus d'infos ici pour expliquer pourquoi cela cause un problème.

Liste des autres SO questions semblent être liées:

Il peut être une session persistante d'un ordinateur distant vers un dossier partagé. Si tel est le cas, il peut être déverrouillé à partir de la ligne de commande:

net session /delete

Votre serveur est configuré pour effectuer des sauvegardes de fichiers périodiques?

Si oui, est la sauvegarde en cours d'exécution en tant que système, ce qui incite peut-être le fichier verrouillé lorsque vous obtenez un conflit?

Pour moi, il était "Windows Defender" (anti-virus). J'exclus mon Visual Studio construire des dossiers de la liste de Windows Defender de dossiers qu'il vérifie, et le problème a disparu. (Visual Studio n'a pas été en mesure de construire le fichier EXE, PID 4 verrouillait pour vérifier virii)

Pour moi, je devais frapper avec un marteau de forgeron. Chkdsk / f sur le disque où se trouve le dossier réparée. A utiliser avec précaution.

Vérifiez les paramètres de sécurité pour chaque dossier et sous-dossiers. Assurez-vous que le système n'a pas seulement créer automatiquement un réglage spécial des autorisations qui ne permettra à personne de supprimer le fichier. Apparemment, pour une raison étrange, le système d'exploitation crée un paramètre d'autorisation spéciale bizarre qui protège le fichier d'être supprimé.

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top