Metro 应用程序在启动、驱动程序或权限问题时崩溃?

Vit*_*meo 18 windows crash windows-8-preview modern-ui

安装 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>
Run Code Online (Sandbox Code Playgroud)

发现其他东西,这是打开 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>
Run Code Online (Sandbox Code Playgroud)

再次更改权限(将Everyone 和Creator Owner 添加到System32)后,“access denied to 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>
Run Code Online (Sandbox Code Playgroud)

现在我被困住了。它告诉我“激活应用程序 microsoft.windowscommunicationsapps_8wekyb3d8bbwe!Microsoft.WindowsLive.Mail 失败,错误:应用程序未启动。有关其他信息,请参阅 Microsoft-Windows-TWinUI/操作日志。” 但我找不到 Microsoft-Windows-TWinUI/操作日志。

我要开始赏金了。


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

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>
Run Code Online (Sandbox Code Playgroud)

我需要更深入。我找到了一个论坛帖子,告诉我要查找“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>
Run Code Online (Sandbox Code Playgroud)

小智 8

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

'ALL_APPLICATION_PACKAGES' 为使所有 Metro/Modern 应用程序正常工作所需的唯一权限是:

  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 文件夹。

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


Vit*_*meo 5

我自己修好了!

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

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

  • 这有什么样的安全隐患? (14认同)
  • 权限比其他用户帐户和本地网络帐户更多。不同的 Windows 以不同的权限在不同的帐户下运行。您刚刚为 C 驱动器上的所有内容授予了每个“应用程序包”权限。除了病毒/安全问题之外,如果由于草率的代码依赖权限来检查它们而导致编写不良的包的行为不同怎么办?如果一个包用一个懒惰的递归删除命令自行清理,现在删除的比它应该删除的更多怎么办? (5认同)
  • 由于安全隐患,我强烈建议使用下面描述的@Kory Sarnelli 方法(即只修改路径 `%USERPROFILE%\AppData\Local\Microsoft\Windows\WER` 的权限 (2认同)