One of the computers I manage had a problemen with Windows Photo Viewer, which crashed with the message "COM Surrogate has stopped working".
Especially when clicking "Next" in the viewer, the application crashed.
It's a 64 bit Dell computer running Windows 7 with all updates applied. It has a Trend Micro virusscanner and a TightVNC 2.x server for remote management.
What is COM Surrogate?
Often, COM objects are defined in DLLSs, a piece of code that is executable, but just not by itself. It is started by another program when needed. But sometimes, you just want to run code from a DLL without writing a complete wrapper program around it. That's where Microsoft has provided a program that can execute parts of a COM DLL without developing a complete program to load the DLL.
This program is called dllhost.exe and has user friendly name "COM Surrogate
What can I do against a crashing COM Surrogate?
I read several solutions, most of which were useless to me, but they may help you.
Replace video card
In my case, the issue was that the drivers of the onboard video card crashed. The computer is an Optiplex 9010 with an Intel® Q77 Express Chipset (Intel® BD82Q77 PCH) chipset that has Integrated Graphics.
I inserted an ATI Radio HD34xx card, which was automatically installed by Windows 7. After a reboot, the problem seems to be completely gone.
Commands
There are a few dlls that can be "re-registered" with Windows. Click on start, type cmd and right-click to choose "Run as Administrator". On the command line, type:
regsvr32 vbscript.dll regsvr32 jscript.dll |
Check Disk for Errors
Bad sectors on the hard drive could be the cause of COM Surrogate crashing. You can check your disk with the chkdsk command.
Disable DEP for dllhost.exe
Another fix that is suggested by numerous websites, is adding dllhost.exe to the exception list of DEP (Data Execution Prevention).
On 32-bit systems, you could whitelist:
C:\Windows\System32\dllhost.exe
And on 64-bit systems, that would be:
C:\Windows\SysWOW64\dllhost.exe
Although this MAY be a fix, I really suggest you don't use this method. The dllhost.exe is an executable that runs a crapload of DLLs, both Microsoft-DLLs and Third-party DLLs. It's like telling your virusscanner to exclude *.exe from scanning.
If it were your financial software, I would not advice against it, but dllhost.exe is used by so many programs, that I don't consider it safe to exclude.
© GeekLabInfo Windows Photo Viewer terminating with "COM Surrogate" error is a post from GeekLab.info. You are free to copy materials from GeekLab.info, but you are required to link back to http://www.geeklab.info