Я устанавливаю 32-разрядное приложение в режиме совместимости на Windows 2008 R2 Server, т.е. на 64-разрядную ОС. Установка и функциональность работают нормально.
Но, при попытке удалить приложение, мы получаем ошибку, связанную с «COM Surrogate».Эта ошибка возникает случайно.
Появится окно с сообщением «Закройте нижеприведенные приложения перед удалением» и отобразит «Суррогат COM (Идентификатор процесса)».Отображаемый ProcessID относится к процессу dllhost.exe * 32.Это специальный dllhost.exe, запущенный в 64-битной ОС для поддержки 32-битных приложений в режиме совместимости.32-разрядные двоичные файлы, необходимые для приложения, размещаются в этом исполняемом файле.Срок действия этого exe-файла возможен только в том случае, если любое из 32-разрядных приложений запущено на 64-разрядной машине.
В идеале, при удалении dllhost.exe * 32 должен умереть изящно, а удаление должно быть плавным.Но это не происходит в некоторых случаях.
Если я подожду некоторое время или вручную убью dllhost.exe * 32, тогда удаление работает нормально.
То, на что я смотрю, является точной причиной, почемуdllhost.exe * 32 не может умирать изящно и разрешение к нему.
Пожалуйста, если кто-нибудь может помочь нам в этом отношении.