КОРЕКЦИЯ: не можете да стартирате приложение за браузър на XAML, което е създадено с помощта на фондация за презентация на Windows в .NET Framework 3,0 или в .NET Framework 3,5


Симптоми


Не можете да стартирате приложение на браузъра XAML (XBAP), което е създадено с помощта на фондация за представяне на Windows (WPF) в Microsoft .NET Framework 3,0 или в Microsoft .NET Framework 3,5. Освен това, ако сърфирате в XBAP в съвместими браузъри, е възможно да се сблъскате с един от следните симптоми:
  • Може да се появи празен прозорец на браузъра. Освен това се показва диалогов прозорец за изтегляне, който не спира да се изтегля.
  • В браузъра получавате следното съобщение за грешка:
    Инсталирането е неуспешно
  • Получавате съобщение за грешка, което гласи, че приложението е разбито.
  • Процесът на PresentationHost. exe и браузърът може да се рестартира многократно.
Забележка Съвместимите браузъри са браузъри, които поддържат XBAP.

Причина


Този проблем възниква поради необичайно условие, което е причинено при определени сценарии за мигриране на акаунт или сценарии за надстройка на операционната система.

Решение


Информация за изтегляне

Следващият файл е наличен за изтегляне от центъра на Microsoft за изтегляния:Download Download the XbapPermFix_sx.exe package now.изтеглете пакета XbapPermFix_sx. exe сега. За повече информация как да изтеглите файлове за поддръжка на Microsoft, щракнете върху следния номер на статия, за да видите статията в базата знания на Microsoft:
119591 Как да получите файлове за поддръжка на Microsoft от онлайн услуги
Microsoft е сканирал този файл за вируси. Microsoft използва най-актуалния софтуер за откриване на вируси, който е наличен на датата, на която е публикуван файлът. Файлът се съхранява на сървърите, които са усъвършенствани за защита, които ви помагат да предотвратите всякакви неразрешени промени във файла.

Предпоставки

Не са необходими предварителни изисквания.

Изискване за рестартиране

Не е необходимо да рестартирате компютъра, след като приложите тази спешна корекция.

Информация за заместване на актуална корекция

Тази актуална корекция не замества никоя друга актуална корекция.

Информация за файла

Английската версия на тази спешна корекция има атрибутите на файла (или по-нови файлови атрибути), които са изброени в таблицата по-долу. Датите и часовете за тези файлове са посочени в координирано универсално време (UTC). Когато видите информацията за файла, тя се конвертира в местно време. За да намерите разликата между UTC и местното време, използвайте раздела часова зона в елемента Дата и час в контролния панел.
Име на файлВерсия на файлРазмер на файлаДатаВремеПлатформа
Xbappermfix_sx.exe6.0.2600.085 02416-Jun-200803:20x86

Състоянието


Microsoft потвърди, че това е проблем в продуктите на Microsoft, които са посочени в секцията "важи за".

Заобиколно решение


За да заобиколите този проблем, използвайте едно от следните заобиколни решения.

Заобиколно решение 1

Изтрийте и създайте отново променения потребителски акаунт.

Заобиколно решение 2

Важно Тази секция, метод или задача съдържа стъпки, които ви обясняват как да модифицирате системния регистър. Сериозни проблеми обаче могат да възникнат, ако модифицирате системния регистър неправилно. Затова се уверете, че следвате тези стъпки внимателно. За допълнителна защита архивирайте системния регистър, преди да ги промените. След това можете да възстановите регистъра, ако възникне проблем. За повече информация как да архивирате и възстановите системния регистър, щракнете върху следния номер на статия, за да видите статията в базата знания на Microsoft:
322756 Как се архивира и възстановява системният регистър в Windows
Ръчно поправете настройките за разрешения. За да направите това, изпълнете следните стъпки:
  1. Щракнете върху Старт, щракнете върху изпълнение, въведете regeditи след това щракнете върхуOK.
  2. Разгънете HKEY_CURRENT_USER, след което разгънетесофтуер.
  3. Щракнете с десния бутон върху класовеи след това щракнете върхуразрешения.
  4. Под имена на потребители или групищракнете върху името на засегнатия потребителски акаунт.
  5. Под разрешения запотребителско имещракнете, за да поставите отметка в квадратчетоРазреши за разрешение за пълен контрол.
  6. Щракнете върху Разширении след това щракнете, за да изберете квадратчето за отметкаВключвай наследяваните разрешения от родителския обект.
  7. Щракнете върху Приложи , след което щракнете върхуOKдва пъти.Забележка Ако все още не можете да стартирате XBAP, отидете на стъпка 8.
  8. Разгънете HKEY_CLASSES_ROOT, след което разгънетеинтерфейса.
  9. Щракнете с десния бутон върху{79EAC9C9-BAF9-11CE-8C82-00AA004BA90B}и след това щракнете върхуразрешения.
  10. Под имена на потребители или групищракнете върху името на засегнатия потребителски акаунт.
  11. Под разрешения запотребителско имещракнете, за да изберете квадратчето за отметкаРазреши за разрешение за четене.
  12. Щракнете върху Приложи, след което щракнете върхуOK.Забележка Ако все още не можете да стартирате XBAP, повторете стъпки 6-7. Ако проблемът не е разрешен, следвайте стъпки 9-12 за следните ключове от системния регистър:
    • {79EAC9C1-BAF9-11CE-8C82-00AA004BA90B}
    • {79EAC9C4-BAF9-11CE-8C82-00AA004BA90B}
    Ако проблемът не е разрешен, преминете към стъпка 13.
  13. В Windows Explorer намерете следния път:
    C:\Documents и Settings \потребителско име\Local Settings \
  14. Определяне дали следващите папки под този път съдържат файл, на който се нарича Desktop. ini:
    • Папката с данни на приложението и неговата подпапка за разполагане
    • Папка за приложения
    • Папката Temp
  15. Преименувайте файла Desktop. ini на друго име.
  16. Намерете папката, която съдържа Desktop. ini файла, щракнете с десния бутон върху папката и след това щракнете върху свойства.
  17. В раздела защита щракнете върхуРазширени.
  18. Щракнете, за да изберете квадратчето за отметка Включвай наследяваните разрешения от родителския обект .
  19. Щракнете върху Приложи, след което щракнете върхуOK.Забележка Ако проблемът не е разрешен, повторете стъпки 14-19 за всички папки, които са в списъка.

Повече информация


Процесът на PresentationHost. exe се изпълнява чрез ограничен маркер за процеса. Процесът дава членството в групата "защита на администраторите" и в групата "защита на потребители". Приложенията, които се изпълняват в ограничителен режим на интернет зона, не трябва да имат пълно разрешение за тези групи за защита. Освен това процесът дава много разрешения за защита на Microsoft Windows NT. Това поведение е функция за защита в дълбочина на защитата. Ефектът от тази функция наподобява как се изпълняват неповишени процеси в Windows Vista, когато управлението на потребителските акаунти е активно. В някои сценарии за мигриране на акаунти или за сценарии за надстройка на операционната система, може да възникне фино повреждане на списъците за контрол на достъпа (ACLs). Тази повреда създава конкретен потребителски акаунт, за да не бъде изрично даден достъп до определени папки или ключове от системния регистър, които принадлежат на потребителския профил. Този проблем може да възникне, тъй като наследяването на разрешения в родителския обект е забранено. Този проблем засяга само приложенията, които са дезактивирани от членството в групата. Например приложението PresentationHost. exe има изключено членството в групата. Известно е, че този проблем влияе върху разрешенията за следните ключове от системния регистър или папки:
  • Клавиш от системния регистър за класове
  • Ключове от системния регистър на интерфейса на IPersistMoniker
  • Някои папки в следния път:
    Настройки за C:\Documents и настройки \потребителско име\Local
    Например папката с данни на приложението и неговата подпапка за разполагане, папката за приложения и папката Temp ще бъдат засегнати.
За повече информация за приложенията на XAML за презентации на Windows посетете следния уеб сайт на Microsoft Developer Network (MSDN):За повече информация относно защитата на Windows презентациите вижте следния MSDN уеб сайт:За повече информация за терминологията на софтуерната актуализация щракнете върху следния номер на статия, за да видите статията в базата знания на Microsoft:
824684 Описание на стандартната терминология, която се използва за описание на актуализациите на софтуер на Microsoft

Информация за стека на повикванията

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)