In quali circostanze non il processo di sistema (PID 4) conservano un handle di file aperto?

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

  •  18-09-2019
  •  | 
  •  

Domanda

La mia applicazione in esecuzione su un server Windows si avvale di un database Jet / Access. Per alcune ragioni circa ogni due settimane che file di database viene bloccato dal processo di sistema (PID 4, sembra essere fisso)

Dopo un po 'googling ho trovato alcuni altri utenti che hanno i propri file bloccati da quel processo di speciale, ma diversi file (ovviamente).

  • Qual è la ragione generale per il processo di sistema per mantenere un handle di file aperto?
  • È la mia domanda la causa di questa situazione di blocco?
  • Sono tutti gli handle aperti dal implicitamente il processo di sistema? Ho potuto immaginare che dopo un processo si è bloccato, la maniglia può essere ancora aperta e il processo di sistema prende in qualche modo owernship di quel manico.
  • Posso fare qualcosa nella mia applicazione per impedire che accada?
È stato utile?

Soluzione

Questo suona per me come un problema a livello di driver con un manico che perde.

Se si sta eseguendo un antivirus pacchetto di provare ad aggiornare, disabilitando (temporaneamente!) O il passaggio a una marca diversa.

Altri suggerimenti

I file si accede tramite una quota sarà bloccato dal processo di sistema (PID 4).

Provare ad aprire compmgmt.msc -> Strumenti di sistema -> Cartelle condivise -> Apri file per vedere se il file bloccato è elencato

Si veda anche lo Sysinternals forum di un modo di replicare questo.
Non tutte le applicazioni si bloccano i file quando vengono aperti, Excel tuttavia fa. Non so se Access fa lo stesso ...

Ecco un altro possibile causa che ho trovato:

C'è un bug in Windows 7 e probabilmente in Windows Server 2008 (possibilmente solo versioni a 64 bit). Affiora quando si disattiva servizio Application Experience e provoca gli stessi problemi come descritto nella questione.

Riattivazione questo servizio ha risolto questo problema per me.

Un po 'più informazioni qui sul perché sta causando un problema.

Elenco delle domande in modo che sembrano essere correlati:

Può essere una sessione persistente da un computer remoto a una cartella condivisa. Se questo è il caso, può essere sbloccata dalla riga di comando:

net session /delete

il server è configurato per eseguire backup di file periodiche?

Se è così, è il backup eseguito come sistema, forse spingendo il file bloccato quando si ottiene un conflitto?

Per me, è stato "Windows Defender" (anti-virus). Ho escluso il mio Visual Studio costruire cartelle dalla lista delle cartelle di Windows Defender esamina e il problema è andato via. (Visual Studio non è stato in grado di costruire il file EXE, PID 4 stava chiudendo per verificare la presenza di virii)

Per quanto mi riguarda ho dovuto colpire con una mazza. Chkdsk / f sull'unità in cui si trovava la cartella riparato. Usare con cautela.

Controllare le impostazioni di sicurezza per ogni cartella e sottocartelle. Assicurarsi che il sistema non ha solo crea automaticamente uno speciale tipo di permessi che non permetterà a nessuno di eliminare il file. A quanto pare per qualche strano motivo il sistema operativo crea un ambiente permesso speciale strano che protegge il file venga cancellato.

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top