Metro 应用程序在启动时崩溃,是驱动程序还是权限问题?

Metro 应用程序在启动时崩溃,是驱动程序还是权限问题?

安装 Win8 x64 RC 后,Metro 应用程序可以正常运行,但桌面 OpenGL 应用程序运行缓慢且无响应。我安装了最新的 Win8 nVidia 驱动程序,OpenGL 应用程序开始正常运行。同时,由于出现烦人的权限消息,我将 C:\ 驱动器及其所有文件的所有权更改为我的用户,并授予其完全权限。

安装驱动程序后,我重新启动了电脑,现在 Metro 应用程序只显示启动画面,然后崩溃。

我尝试安装其他版本的 nVidia 驱动程序,结果相同。

我的 GPU 是 GeForce GTX275。

这是 nVidia 驱动程序的已知问题吗?或者也许更改 C:\ 的所有权才是真正的问题?

谢谢。


更多信息(查看事件查看器后)

我设法在事件查看器中找到问题和错误。我仍然无法解决它。以下是我通过打开邮件应用程序并让其崩溃找到的信息:

Log Name:      Microsoft-Windows-TWinUI/Operational
Source:        Microsoft-Windows-Immersive-Shell
Date:          07/06/2012 15.54.17
Event ID:      5961
Task Category: (5961)
Level:         Error
Keywords:      
User:          VEE-PC\Vittorio
Computer:      vee-pc
Description:
Activation of the app microsoft.windowscommunicationsapps_8wekyb3d8bbwe!Microsoft.WindowsLive.Mail for the Windows.Launch contract failed with error: The app didn't start..
Event Xml:
<Event xmlns="http://schemas.microsoft.com/win/2004/08/events/event">
  <System>
    <Provider Name="Microsoft-Windows-Immersive-Shell" Guid="{315A8872-923E-4EA2-9889-33CD4754BF64}" />
    <EventID>5961</EventID>
    <Version>0</Version>
    <Level>2</Level>
    <Task>5961</Task>
    <Opcode>0</Opcode>
    <Keywords>0x4000000000000000</Keywords>
    <TimeCreated SystemTime="2012-06-07T13:54:17.472416600Z" />
    <EventRecordID>6524</EventRecordID>
    <Correlation />
    <Execution ProcessID="3008" ThreadID="6756" />
    <Channel>Microsoft-Windows-TWinUI/Operational</Channel>
    <Computer>vee-pc</Computer>
    <Security UserID="S-1-5-21-2753614643-3522538917-4071044258-1001" />
  </System>
  <EventData>
    <Data Name="AppId">microsoft.windowscommunicationsapps_8wekyb3d8bbwe!Microsoft.WindowsLive.Mail</Data>
    <Data Name="ContractId">Windows.Launch</Data>
    <Data Name="ErrorCode">-2144927141</Data>
  </EventData>
</Event>

发现其他内容,这是打开 Metro 应用时出现的另一个错误:

Log Name:      Application
Source:        ESENT
Date:          07/06/2012 16.01.00
Event ID:      490
Task Category: General
Level:         Error
Keywords:      Classic
User:          N/A
Computer:      vee-pc
Description:
svchost (1376) SRUJet: An attempt to open the file "C:\Windows\system32\SRU\SRU.log" for read / write access failed with system error 5 (0x00000005): "Access is denied. ".  The open file operation will fail with error -1032 (0xfffffbf8).
Event Xml:
<Event xmlns="http://schemas.microsoft.com/win/2004/08/events/event">
  <System>
    <Provider Name="ESENT" />
    <EventID Qualifiers="0">490</EventID>
    <Level>2</Level>
    <Task>1</Task>
    <Keywords>0x80000000000000</Keywords>
    <TimeCreated SystemTime="2012-06-07T14:01:00.000000000Z" />
    <EventRecordID>11854</EventRecordID>
    <Channel>Application</Channel>
    <Computer>vee-pc</Computer>
    <Security />
  </System>
  <EventData>
    <Data>svchost</Data>
    <Data>1376</Data>
    <Data>SRUJet: </Data>
    <Data>C:\Windows\system32\SRU\SRU.log</Data>
    <Data>-1032 (0xfffffbf8)</Data>
    <Data>5 (0x00000005)</Data>
    <Data>Access is denied. </Data>
  </EventData>
</Event>

再次更改权限(将 Everyone 和 Creator Owner 添加到 System32)后,“拒绝访问 sru.log”错误消失,但此错误出现在其位置:

Log Name:      Application
Source:        Microsoft-Windows-Immersive-Shell
Date:          07/06/2012 16.16.34
Event ID:      2486
Task Category: (2414)
Level:         Error
Keywords:      (64),Process Lifetime Manager
User:          VEE-PC\Vittorio
Computer:      vee-pc
Description:
App microsoft.windowscommunicationsapps_8wekyb3d8bbwe!Microsoft.WindowsLive.Mail did not launch within its allotted time.
Event Xml:
<Event xmlns="http://schemas.microsoft.com/win/2004/08/events/event">
  <System>
    <Provider Name="Microsoft-Windows-Immersive-Shell" Guid="{315A8872-923E-4EA2-9889-33CD4754BF64}" />
    <EventID>2486</EventID>
    <Version>0</Version>
    <Level>2</Level>
    <Task>2414</Task>
    <Opcode>0</Opcode>
    <Keywords>0x2000000000000042</Keywords>
    <TimeCreated SystemTime="2012-06-07T14:16:34.616499600Z" />
    <EventRecordID>11916</EventRecordID>
    <Correlation />
    <Execution ProcessID="3008" ThreadID="6996" />
    <Channel>Application</Channel>
    <Computer>vee-pc</Computer>
    <Security UserID="S-1-5-21-2753614643-3522538917-4071044258-1001" />
  </System>
  <EventData>
    <Data Name="ApplicationId">microsoft.windowscommunicationsapps_8wekyb3d8bbwe!Microsoft.WindowsLive.Mail</Data>
  </EventData>
</Event>

现在我陷入了困境。它告诉我“激活应用程序 microsoft.windowscommunicationsapps_8wekyb3d8bbwe!Microsoft.WindowsLive.Mail 失败,错误:应用程序未启动。请参阅 Microsoft-Windows-TWinUI/Operational 日志以获取更多信息。”但我找不到 Microsoft-Windows-TWinUI/Operational 日志。

我正在开始悬赏。


我找到了 TWinUI/Operational 日志。它只告诉我:

Log Name:      Microsoft-Windows-TWinUI/Operational
Source:        Microsoft-Windows-Immersive-Shell
Date:          07/06/2012 16.28.57
Event ID:      5961
Task Category: (5961)
Level:         Error
Keywords:      
User:          VEE-PC\Vittorio
Computer:      vee-pc
Description:
Activation of the app microsoft.windowscommunicationsapps_8wekyb3d8bbwe!Microsoft.WindowsLive.Mail for the Windows.BackgroundTasks contract failed with error: The app didn't start..
Event Xml:
<Event xmlns="http://schemas.microsoft.com/win/2004/08/events/event">
  <System>
    <Provider Name="Microsoft-Windows-Immersive-Shell" Guid="{315A8872-923E-4EA2-9889-33CD4754BF64}" />
    <EventID>5961</EventID>
    <Version>0</Version>
    <Level>2</Level>
    <Task>5961</Task>
    <Opcode>0</Opcode>
    <Keywords>0x4000000000000000</Keywords>
    <TimeCreated SystemTime="2012-06-07T14:28:57.238140800Z" />
    <EventRecordID>6536</EventRecordID>
    <Correlation />
    <Execution ProcessID="3008" ThreadID="2624" />
    <Channel>Microsoft-Windows-TWinUI/Operational</Channel>
    <Computer>vee-pc</Computer>
    <Security UserID="S-1-5-21-2753614643-3522538917-4071044258-1001" />
  </System>
  <EventData>
    <Data Name="AppId">microsoft.windowscommunicationsapps_8wekyb3d8bbwe!Microsoft.WindowsLive.Mail</Data>
    <Data Name="ContractId">Windows.BackgroundTasks</Data>
    <Data Name="ErrorCode">-2144927141</Data>
  </EventData>
</Event>

我需要更深入地研究。我发现一个论坛帖子告诉我寻找“DCOM”错误。我发现这个错误与应用程序崩溃有关

“服务器 Microsoft.WindowsLive.Mail.wwa 未在要求的超时时间内向 DCOM 注册。”

Log Name:      System
Source:        Microsoft-Windows-DistributedCOM
Date:          07/06/2012 16.46.45
Event ID:      10010
Task Category: None
Level:         Error
Keywords:      Classic
User:          VEE-PC\Vittorio
Computer:      vee-pc
Description:
The server Microsoft.WindowsLive.Mail.wwa did not register with DCOM within the required timeout.
Event Xml:
<Event xmlns="http://schemas.microsoft.com/win/2004/08/events/event">
  <System>
    <Provider Name="Microsoft-Windows-DistributedCOM" Guid="{1B562E86-B7AA-4131-BADC-B6F3A001407E}" EventSourceName="DCOM" />
    <EventID Qualifiers="0">10010</EventID>
    <Version>0</Version>
    <Level>2</Level>
    <Task>0</Task>
    <Opcode>0</Opcode>
    <Keywords>0x8080000000000000</Keywords>
    <TimeCreated SystemTime="2012-06-07T14:46:45.586943800Z" />
    <EventRecordID>2763</EventRecordID>
    <Correlation />
    <Execution ProcessID="804" ThreadID="2364" />
    <Channel>System</Channel>
    <Computer>vee-pc</Computer>
    <Security UserID="S-1-5-21-2753614643-3522538917-4071044258-1001" />
  </System>
  <EventData>
    <Data Name="param1">Microsoft.WindowsLive.Mail.wwa</Data>
  </EventData>
</Event>

答案1

好吧,我花了很长时间才解决这个问题,希望这能帮到大家。我更改了用户文件夹的权限(就像我一直以来所做的那样),只允许我的用户和系统访问。不幸的是,这破坏了一些 Metro/Modern 应用程序,包括天气、新闻、财经、Netflix 等。

为了使所有 Metro/Modern 应用程序正常运行,“ALL_APPLICATION_PACKAGES”所需的唯一权限是:

  1. 文件——%USERPROFILE%\AppData\Local\Temporary Internet Files\counters.dat读取并执行,读取——(您需要在文件夹选项中取消选中“隐藏受保护的操作系统文件”才能看到“临时 Internet 文件”文件夹)

(如果在上述位置找不到,请尝试%USERPROFILE%\AppData\Local\Microsoft\Windows\Temporary Internet Files\counters.dat

  1. 文件夹 - %USERPROFILE%\AppData\Local\WER- 特殊:列出文件夹/读取数据、创建文件夹/附加数据

(如果在上述位置找不到,请尝试%USERPROFILE%\AppData\Local\Microsoft\Windows\WER

它不需要完全访问您的 C: 驱动器,甚至不需要访问 Packages 文件夹(如先前的答案所建议的那样)。

您可以在进行上述权限更改后重新启动,或者终止相应的进程。

答案2

我自己修好了!

我在 C:\ 安全选项中添加了“所有应用程序包”,并赋予其完全控制权。现在 Metro 应用程序运行正常。:D

https://dl.dropbox.com/u/3724424/fix.png

答案3

就我而言,它是 Avast。我必须禁用所有防护才能使其正常工作。

Avast 更新至最新版本后就修复了这个问题!

答案4

如果所有其他想法都不起作用,请尝试这个:我的用户文件夹位于 D 盘 HDD 上,而我的 C 盘是 SSD,因此如果你没有 SSD,请使用 C:

将用户 ID添加All_Application_Packages到此文件夹:

d:\Users\Brent\AppData\Local\Packages

并赋予它全部但完全的控制权,即读取、列出、创建、写入等。这是使我的所有应用程序恢复的技巧。

请不要将此用户 ID 添加到您的 C:\ 或 Windowy 文件夹,因为这样只会给您下载的任何应用程序无限制地访问您的电脑内容带来麻烦。

相关内容