O método 'DeleteFile' do objeto 'IFileSystem3' falhou. O sistema fica preso se tentar excluir / renomear após esse erro

0

Eu tenho um sistema com o Windows 7 OS. Eu tenho um projeto de automação que faz o trabalho de construir a configuração usando o wrapper NSIS. Existem muitas operações de arquivo, como copiar e excluir os arquivos, etc. Quando o arquivo específico está sendo excluído na codificação visual básica, recebo o erro como "Falha no método 'DeleteFile' do objeto 'IFileSystem3'". O arquivo para este erro que vem é MDAC_TYP.EXE com tamanho de 5 MB.

Cenário:

A unidade do servidor (servidor do Windows 2012) é mapeada para o sistema local do Windows 7 e toda a operação é executada nesta unidade mapeada na máquina do cliente. O cliente e o servidor estão conectados à LAN de 1 Gbps. Agora, quando executo meu projeto para construir a configuração, ele copia todos os arquivos do aplicativo para uma pasta chamada Temp e, em seguida, cria o setup exe usando o NSIS (makeNSIS). Após a criação da configuração do NSIS, ele excluirá todos os arquivos de origem da pasta temp e novamente copiará alguns outros arquivos para a mesma pasta temporária para a próxima configuração.

Às vezes, ao excluir o arquivo MDAC_TYP.exe, recebo o erro, conforme mencionado acima. Existem duas pastas com a mesma estrutura, chamadas "Build1" e "Build2". O Build1 é usado para o ambiente de teste e o Build2 é para o ambiente de produção. A pasta Temp será criada em ambas as pastas durante a execução de testes e configuração de produção.

O erro acima mencionado vem para o Build1 & Construir pastas e o erro vem ocasionalmente (não toda vez) para o mesmo exe. O arquivo MDAC_TYP.EXE tem permissão somente leitura no local de onde copio o arquivo para o diretório TEMP dentro de build1 & build2 para script NSIS. No código básico visual, eu uso o método FileSystemObject.DeleteFile com a opção force definida como true.

Uma vez que o erro vem, não consigo renomear / deletar / mover o arquivo em nenhum PC através do UNC ou mesmo no servidor ele não pode ser deletado. Se eu tentar renomear / excluir o arquivo ou sua pasta pai, o sistema de onde eu tento excluir / renomear fica travado. Mesmo se nós reinicializarmos a máquina cliente onde o erro foi enviado para a operação, isso não resolverá o problema. Só a solução que encontrei é reiniciar o servidor. Após a reinicialização do servidor, o arquivo pode ser renomeado ou excluído. Outros métodos que tentei são os seguintes.

  • Verificado pelo identificador de arquivo usando o Process Explorer em ambos os clientes como servidor - Nenhum identificador foi encontrado
  • Verificado Abra arquivos nas pastas compartilhadas do servidor. - Nenhuma conexão de arquivo aberto encontrada para o arquivo.
  • Tentei reiniciar a máquina do cliente - Não resolvido.
  • Tentou excluir / Renomear o arquivo usando o comando no servidor - Não possível.
  • Tentou excluir / renomear o arquivo no servidor - Nenhum erro e nenhuma mensagem. Em vez disso, o servidor fica preso.
  • Verificou problemas de disco usando o chkdisk no servidor. Sem problemas relatado.
  • permissão de pasta - o usuário tem permissão total e não há questão.
  • Tentei executar o mesmo processo de criação após a reinicialização - Tudo funciona bem. Mas, novamente, repete depois de algum tempo / dia.
  • Tentei desconectar a unidade mapeada no momento do erro. Mas ainda não é capaz de renomear.
  • Nenhum antivírus / visualizador de eventos efetua login no cliente e no servidor.

Inicialmente, o erro estava chegando no meu PC com Windows XP. Agora eu atualizei para o windows 7 (instalação Fresh) e o erro ainda está chegando na nova máquina windows 7.

Atualização:

Recentemente, notei que o mesmo erro também ocorre ao excluir o arquivo msstdfmt.dll

Atualização 2:

Eu também tenho erro para o arquivo de palavras ms, o erro é o mesmo. Em todos os 3 casos eu achei que há apenas uma coisa comum que é todos os 3 arquivos tem atributo somente leitura.

    
por IT researcher 07.12.2017 / 14:46

0 respostas