0

When I am trying to patch a server with .Net processes running, MSI and other applications can usually rename the running assemblies to place new ones in the same location.

On one server, I can't: When using MSI on this computer, restarts are required. In File Explorer, attempts to rename the files results in a sharing violation. The same app running on the same OS and antivirus on a different machine is able to be patched in place without issue.

The action cannot be completed because the file is open in App.exe

Close the file and try again.

[Try Again] [Cancel]

Comparing the open handles using Sysinternals Process Explorer shows that the process is taking a "File" lock on each assembly on the server in question.

Why can't I replace the running file while the process is running on this server?

Mitch
  • 21,223
  • 6
  • 63
  • 86

1 Answers1

0

Check to ensure that Fusion logging is not enabled. Enabling Fusion logging can result in the application opening a file handle with FILE_SHARE_READ.

Fusion logging is controlled by values in the HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Fusion key. Running the below .reg file will disable fusion logging.

Windows Registry Editor Version 5.00

[HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Fusion]
"ForceLog"=dword:00000000
"LogFailures"=dword:00000000
"EnableLog"=dword:00000000
Mitch
  • 21,223
  • 6
  • 63
  • 86