Here’s an issue we’ve seen a time or two here in support so I thought it would be worth a mention in case any of you happen to run across it. What happens is that Keepass.exe fails to synchronize settings with Microsoft User Experience Virtualization 1.0 (UE-V 1.0) enabled and crashes on launch. An error similar to the following will be reported in the Application log:
A UE-V debug (ETL) trace will show a pattern similar to the following:
This crash occurs because UE-V and Keepass.exe both attempt to load different versions of the .Net runtime into the same process space when the UE-V agent DLL is injected in to the Keepass.exe process.
To resolve this issue, complete the following steps:
1. Open Notepad.exe in an elevated context by right-clicking on a shortcut to Notepad and choosing Run as administrator....
2. Select File\New... and create or edit a file named keepass.exe.config in the same folder as Keepass.exe (C:\Program Files (x86)\KeePass Password Safe 2 by default). Be sure to remove the .txt extension.
3. Copy and paste the following lines into keepass.exe.config. If the file already exists, change the <startup> tag to <startup useLegacyV2RuntimeActivationPolicy="true">:
<?xml version="1.0" encoding="utf-8" ?> <configuration> <startup useLegacyV2RuntimeActivationPolicy="true"> <supportedRuntime version="v4.0" /> <supportedRuntime version="v2.0.50727" /> </startup> <runtime> <assemblyBinding xmlns="urn:schemas-microsoft-com:asm.v1"> <dependentAssembly> <assemblyIdentity name="KeePass" publicKeyToken="fed2ed7716aecf5c" culture="neutral" /> <bindingRedirect oldVersion="22.214.171.124-126.96.36.199" newVersion="188.8.131.5222" /> </dependentAssembly> </assemblyBinding> <enforceFIPSPolicy enabled="false" /> <loadFromRemoteSources enabled="true" /> </runtime> </configuration>
4. Save the file and exit Notepad.
5. Re-launch Keepass.exe.
This crash occurs because UE-V and the process that UE-V is trying to inject its monitoring and management DLL in to are both compiled to use the .Net Runtime 2.0.5, but reference different builds of the runtime. Adding the useLegacyV2RuntimeActivationPolicy tag to the executable’s .config file allows the program to successfully load despite this incompatibility. This is a relatively rare error that has only been experienced with the KeePass.exe executable, but it is possible that other .Net applications may witness the same behavior. To diagnose that you are in this state, verify that the process you are investigating is generating Application log event 1000 with the Exception code: 0xe0434352 string in the details of the event. Edit or add a .config file to the executable referenced in the Faulting application path.
We have a new KB article on this issue here:
2802058 - Keepass crashes and fails to synchronize with UE-V (http://support.microsoft.com/kb/2802058)
Mark Stanfill | Senior Support Escalation Engineer | Management and Security Division
Get the latest System Center news on Facebook and Twitter:
System Center All Up: http://blogs.technet.com/b/systemcenter/ System Center – Configuration Manager Support Team blog: http://blogs.technet.com/configurationmgr/ System Center – Data Protection Manager Team blog: http://blogs.technet.com/dpm/ System Center – Orchestrator Support Team blog: http://blogs.technet.com/b/orchestrator/ System Center – Operations Manager Team blog: http://blogs.technet.com/momteam/ System Center – Service Manager Team blog: http://blogs.technet.com/b/servicemanager System Center – Virtual Machine Manager Team blog: http://blogs.technet.com/scvmm
Windows Intune: http://blogs.technet.com/b/windowsintune/ WSUS Support Team blog: http://blogs.technet.com/sus/ The AD RMS blog: http://blogs.technet.com/b/rmssupp/
The Forefront Endpoint Protection blog : http://blogs.technet.com/b/clientsecurity/ The Forefront Identity Manager blog : http://blogs.msdn.com/b/ms-identity-support/ The Forefront TMG blog: http://blogs.technet.com/b/isablog/ The Forefront UAG blog: http://blogs.technet.com/b/edgeaccessblog/
For anyone who stumbles across this whilst trying to sequence KeePass 2 using App-V 5.0 this also resolves the same issue there. During the sequencing you just need to edit the keepass.exe.config as above before you stop the monitoring.