CORRECCIÓN: no puede iniciar una aplicación de explorador XAML creada con Windows Presentation Foundation en .NET Framework 3,0 o en .NET Framework 3,5


Síntomas


No puede iniciar una aplicación de explorador XAML (XBAP) creada mediante Windows Presentation Foundation (WPF) en Microsoft .NET Framework 3,0 o en Microsoft .NET Framework 3,5. Además, si examina la aplicación XBAP en exploradores compatibles, es posible que experimente uno de los siguientes síntomas:
  • Puede aparecer una ventana en blanco del explorador. Además, aparece un cuadro de diálogo de descarga que nunca detiene la descarga.
  • Recibe el siguiente mensaje de error en el explorador:
    Error en la implementación
  • Recibe un mensaje de error que indica que la aplicación se bloqueó.
  • El proceso PresentationHost. exe y el explorador pueden reiniciarse varias veces.
Nota Los exploradores compatibles son exploradores que admiten XBAP.

Causa


Este problema se debe a una condición anormal que se produce en algunos escenarios de migración de cuentas o de actualización de sistema operativo.

Solución


Información de descarga

El siguiente archivo está disponible para descargarlo desde el centro de descarga de Microsoft:Download Download the XbapPermFix_sx.exe package now.descargar el paquete XbapPermFix_sx. exe ahora. Para obtener más información sobre cómo descargar los archivos de soporte técnico de Microsoft, haga clic en el número de artículo siguiente para verlo en Microsoft Knowledge Base:
119591 Cómo obtener archivos de soporte técnico de Microsoft desde los servicios en línea
Microsoft examinó este archivo en busca de virus. Microsoft usó el software de detección de virus más reciente que había disponible en la fecha en la que se publicó el archivo. El archivo está guardado en servidores de seguridad mejorada que ayudan a prevenir cambios no autorizados del archivo.

Requisitos previos

No se necesitan requisitos previos.

Requisito de reinicio

No es necesario que reinicie el equipo después de aplicar este Hotfix.

Información de la sustitución de revisión

Este hotfix no reemplaza a ningún otro hotfix.

Información de archivo

La versión en Inglés de esta revisión tiene los atributos de archivo (o atributos de archivo posteriores) que aparecen en la tabla siguiente. Las fechas y horas de estos archivos se expresan de acuerdo con la hora universal coordinada (UTC). Cuando vea la información del archivo, esta se convertirá a la hora local. Para conocer la diferencia entre la hora UTC y la hora local, use la pestaña Zona horaria del elemento Fecha y hora del Panel de control.
Nombre de archivoVersión del archivoTamaño del archivoFechaHoraPlataforma
Xbappermfix_sx.exe6.0.2600.085,02416-Jun-200803:20x86

Estado


Microsoft ha confirmado que se trata de un problema de los productos de Microsoft recogidos en la sección "Se aplica a".

Solución alternativa


Para solucionar este problema, use una de las soluciones alternativas siguientes.

Solución alternativa 1

Elimine y vuelva a crear la cuenta de usuario afectada.

Solución alternativa 2

Importante Esta sección, método o tarea contiene pasos que le indican cómo modificar el registro. Sin embargo, pueden surgir problemas graves si modifica incorrectamente el registro. Por lo tanto, asegúrese de seguir estos pasos detenidamente. Para obtener una protección adicional, haga una copia de seguridad del registro antes de modificarlo. Después, puede restaurar el registro si se produce un problema. Para obtener más información sobre cómo hacer una copia de seguridad y restaurar el registro, haga clic en el número de artículo siguiente para verlo en Microsoft Knowledge Base:
322756 Cómo realizar una copia de seguridad y restaurar el Registro en Windows
Reparar manualmente la configuración de permisos. Para ello, siga estos pasos:
  1. Haga clic en Inicio, haga clic en Ejecutar, escriba regedity, a continuación, haga clic enAceptar.
  2. Expanda HKEY_CURRENT_USERy, a continuación, expandasoftware.
  3. Haga clic con el botón secundario en clasesy después haga clic enpermisos.
  4. En nombres de grupos o usuarios, haga clic en el nombre de la cuenta de usuario afectada.
  5. En permisos paranombre de usuario, haga clic para activar la casilla de verificaciónpermitir para el permiso control total.
  6. Haga clic en avanzadasy, a continuación, active la casillaincluir los permisos heredables de este objeto primario.
  7. Haga clic en aplicar y, a continuación, haga clic enAceptardos veces.Nota Si sigue sin poder iniciar la aplicación XBAP, vaya al paso 8.
  8. Expanda HKEY_CLASSES_ROOTy, a continuación, expandainterfaz.
  9. Haga clic con el botón derecho en{79EAC9C9-BAF9-11CE-8C82-00AA004BA90B}y, después, haga clic enpermisos.
  10. En nombres de grupos o usuarios, haga clic en el nombre de la cuenta de usuario afectada.
  11. En permisos paranombre de usuario, active la casillapermitir del permiso leer.
  12. Haga clic en aplicary, a continuación, enAceptar.Nota Si aún no puede iniciar la aplicación XBAP, repita los pasos 6-7. Si el problema persiste, siga los pasos 9-12 de las siguientes claves del registro:
    • {79EAC9C1-BAF9-11CE-8C82-00AA004BA90B}
    • {79EAC9C4-BAF9-11CE-8C82-00AA004BA90B}
    Si el problema persiste, vaya al paso 13.
  13. En el explorador de Windows, busque la siguiente ruta de acceso:
    C:\Documents and Settings \nombre de usuario\Local Settings \
  14. Determine si las siguientes carpetas de esta ruta contienen un archivo denominado Desktop. ini:
    • La carpeta datos de programa y su subcarpeta de implementación
    • Carpeta Aplicaciones
    • La carpeta Temp
  15. Cambie el nombre del archivo Desktop. ini a otro nombre.
  16. Busque la carpeta que contiene el archivo Desktop. ini, haga clic con el botón secundario en la carpeta y, a continuación, haga clic en propiedades.
  17. En la pestaña seguridad , haga clic enavanzadas.
  18. Active la casilla de verificación incluir los permisos heredables de este objeto primario .
  19. Haga clic en aplicary, a continuación, enAceptar.Nota Si el problema persiste, repita los pasos 14-19 para todas las carpetas que aparecen en la lista.

Más información


El proceso PresentationHost. exe se ejecuta con un token de proceso restringido. El proceso concede la pertenencia al grupo de seguridad administradores y al grupo de seguridad usuarios avanzados. Las aplicaciones que se ejecutan en el espacio aislado de zona de Internet no tienen el permiso completo para estos grupos de seguridad. Además, el proceso ofrece muchos permisos de seguridad de Microsoft Windows NT. Este comportamiento es una característica de seguridad de defensa en profundidad. El efecto de esta característica se asemeja al modo en que los procesos no elevados se ejecutan en Windows Vista cuando el control de cuentas de usuario está activo. En algunos escenarios de migración de cuentas o escenarios de actualización del sistema operativo, pueden producirse sutiles daños en las listas de control de acceso (ACL). Este daño hace que a una cuenta de usuario determinada no se le dé acceso de forma explícita a determinadas carpetas o claves de registro que pertenecen al perfil de usuario. Este problema puede ocurrir porque se ha deshabilitado la herencia de permisos en el objeto primario. Este problema solo afecta a las aplicaciones que tienen deshabilitada la pertenencia a grupos. Por ejemplo, la aplicación PresentationHost. exe tiene deshabilitada la pertenencia a grupos. Este problema afecta a los permisos de las siguientes carpetas o claves del registro:
  • La clave del registro classes
  • Las claves de registro de la interfaz IPersistMoniker
  • Algunas carpetas de la siguiente ruta de acceso:
    C:\Documents and Settings \nombre de usuario\Local Settings
    Por ejemplo, la carpeta datos de la aplicación y su subcarpeta de implementación, la carpeta Aplicaciones y la carpeta Temp se verán afectadas.
Para obtener más información sobre las aplicaciones de explorador XAML de Windows Presentation Foundation, visite el siguiente sitio web de Microsoft Developer Network (MSDN):Para obtener más información sobre la seguridad de Windows Presentation Foundation, visite el siguiente sitio web de MSDN:Para obtener más información acerca de la terminología relativa a las actualizaciones de software de Microsoft, haga clic en el número de artículo siguiente para verlo en Microsoft Knowledge Base:
824684 Descripción de la terminología estándar utilizada para describir las actualizaciones de software de Microsoft

Información de la pila de llamadas

System.UnauthorizedAccessException: Access is denied. (Exception from HRESULT: 0x80070005 (E_ACCESSDENIED))   at System.Deployment.Internal.Isolation.IsolationInterop.GetUserStore(UInt32 Flags, IntPtr hToken, Guid& riid)   at System.Deployment.Internal.Isolation.IsolationInterop.GetUserStore()   at System.Deployment.Application.ComponentStore..ctor(ComponentStoreType storeType, SubscriptionStore subStore)   at System.Deployment.Application.SubscriptionStore..ctor(String deployPath, String tempPath, ComponentStoreType storeType)   at System.Deployment.Application.SubscriptionStore.get_CurrentUser()   at System.Deployment.Application.DeploymentManager..ctor(Uri deploymentSource, Boolean isUpdate, Boolean isConfirmed, DownloadOptions downloadOptions, AsyncOperation optionalAsyncOp)   at System.Deployment.Application.InPlaceHostingManager..ctor(Uri deploymentManifest, Boolean launchInHostProcess)   at System.Deployment.Application.InPlaceHostingManager..ctor(Uri deploymentManifest)   at MS.Internal.AppModel.XappLauncherApp.TryUriActivation()   at MS.Internal.AppModel.XappLauncherApp.XappLauncherApp_Startup(Object sender, StartupEventArgs e)   at System.Windows.Application.OnStartup(StartupEventArgs e)   at System.Windows.Application.<.ctor>b__0(Object unused)   at System.Windows.Threading.ExceptionWrapper.InternalRealCall(Delegate callback, Object args, Boolean isSingleParameter)   at System.Windows.Threading.ExceptionWrapper.TryCatchWhen(Object source, Delegate callback, Object args, Boolean isSingleParameter, Delegate catchHandler)   at System.Windows.Threading.DispatcherOperation.InvokeImpl()   at System.Windows.Threading.DispatcherOperation.InvokeInSecurityContext(Object state)   at System.Threading.ExecutionContext.runTryCode(Object userData)   at System.Runtime.CompilerServices.RuntimeHelpers.ExecuteCodeWithGuaranteedCleanup(TryCode code, CleanupCode backoutCode, Object userData)   at System.Threading.ExecutionContext.RunInternal(ExecutionContext executionContext, ContextCallback callback, Object state)   at System.Threading.ExecutionContext.Run(ExecutionContext executionContext, ContextCallback callback, Object state)   at System.Windows.Threading.DispatcherOperation.Invoke()   at System.Windows.Threading.Dispatcher.ProcessQueue()   at System.Windows.Threading.Dispatcher.WndProcHook(IntPtr hwnd, Int32 msg, IntPtr wParam, IntPtr lParam, Boolean& handled)   at MS.Win32.HwndWrapper.WndProc(IntPtr hwnd, Int32 msg, IntPtr wParam, IntPtr lParam, Boolean& handled)   at MS.Win32.HwndSubclass.DispatcherCallbackOperation(Object o)   at System.Windows.Threading.ExceptionWrapper.InternalRealCall(Delegate callback, Object args, Boolean isSingleParameter)   at System.Windows.Threading.ExceptionWrapper.TryCatchWhen(Object source, Delegate callback, Object args, Boolean isSingleParameter, Delegate catchHandler)   at System.Windows.Threading.Dispatcher.InvokeImpl(DispatcherPriority priority, TimeSpan timeout, Delegate method, Object args, Boolean isSingleParameter)   at System.Windows.Threading.Dispatcher.Invoke(DispatcherPriority priority, Delegate method, Object arg)   at MS.Win32.HwndSubclass.SubclassWndProc(IntPtr hwnd, Int32 msg, IntPtr wParam, IntPtr lParam)   at MS.Win32.UnsafeNativeMethods.DispatchMessage(MSG& msg)   at System.Windows.Threading.Dispatcher.PushFrameImpl(DispatcherFrame frame)   at System.Windows.Threading.Dispatcher.PushFrame(DispatcherFrame frame)   at System.Windows.Threading.Dispatcher.Run()   at System.Windows.Application.RunDispatcher(Object ignore)   at System.Windows.Application.StartDispatcherInBrowser(Object unused)   at System.Windows.Threading.ExceptionWrapper.InternalRealCall(Delegate callback, Object args, Boolean isSingleParameter)   at System.Windows.Threading.ExceptionWrapper.TryCatchWhen(Object source, Delegate callback, Object args, Boolean isSingleParameter, Delegate catchHandler)   at System.Windows.Threading.DispatcherOperation.InvokeImpl()   at System.Windows.Threading.DispatcherOperation.InvokeInSecurityContext(Object state)   at System.Threading.ExecutionContext.runTryCode(Object userData)   at System.Runtime.CompilerServices.RuntimeHelpers.ExecuteCodeWithGuaranteedCleanup(TryCode code, CleanupCode backoutCode, Object userData)   at System.Threading.ExecutionContext.RunInternal(ExecutionContext executionContext, ContextCallback callback, Object state)   at System.Threading.ExecutionContext.Run(ExecutionContext executionContext, ContextCallback callback, Object state)   at System.Windows.Threading.DispatcherOperation.Invoke()   at System.Windows.Threading.Dispatcher.ProcessQueue()   at System.Windows.Threading.Dispatcher.WndProcHook(IntPtr hwnd, Int32 msg, IntPtr wParam, IntPtr lParam, Boolean& handled)   at MS.Win32.HwndWrapper.WndProc(IntPtr hwnd, Int32 msg, IntPtr wParam, IntPtr lParam, Boolean& handled)   at MS.Win32.HwndSubclass.DispatcherCallbackOperation(Object o)   at System.Windows.Threading.ExceptionWrapper.InternalRealCall(Delegate callback, Object args, Boolean isSingleParameter)   at System.Windows.Threading.ExceptionWrapper.TryCatchWhen(Object source, Delegate callback, Object args, Boolean isSingleParameter, Delegate catchHandler)   at System.Windows.Threading.Dispatcher.InvokeImpl(DispatcherPriority priority, TimeSpan timeout, Delegate method, Object args, Boolean isSingleParameter)   at System.Windows.Threading.Dispatcher.Invoke(DispatcherPriority priority, Delegate method, Object arg)   at MS.Win32.HwndSubclass.SubclassWndProc(IntPtr hwnd, Int32 msg, IntPtr wParam, IntPtr lParam)