我正在使用Prism 6.0开发UWP应用程序 我的应用程序在调试和发布模式下都运行良好,但是当我在应用程序包上运行Windows应用程序认证工具包时,我不断收到此应用程序错误 - “会话状态服务失败”。我在安装应用程序包并运行应用程序时从未见过这种异常。但是每当WACK运行包时,我都会得到这个例外。
因此,
我在Windows应用认证工具包中遇到错误 - 测试结果。
错误是: 的 FAILED 崩溃并挂起
•发现错误:崩溃和挂起测试检测到以下错误:◦ExecutableC:\ Program Files \ WindowsApps \ 10486username.SongApp_1.1.0.0_x86__5q2wmk4fv784y \ Windows错误报告检测到SongApp.exe并遇到崩溃或挂起。 ◦Windows错误报告检测到应用程序10486username.SongApp_1.1.0.0_x86__5q2wmk4fv784y,遇到崩溃或挂起。
•影响如果不修复:停止响应或崩溃的应用程序可能会导致数据丢失并且用户体验不佳。
•如何修复:调查并调试应用以识别并解决问题。
失败 暂停后 Direct3D修剪
•发现错误:挂起测试后的Direct3D修剪检测到以下错误:◦应用程序应用程序未在测试结束时运行。它可能因为没有反应而崩溃或被终止。
•影响如果不修复:如果应用程序未在其Direct3D设备上调用Trim,则应用程序将不会释放为其早期3D工作分配的内存。这会增加因系统内存压力而终止应用程序的风险。
•如何解决:应用程序应在其IDXGIDevice3接口上随时调用Trim API。
答案 0 :(得分:2)
我使用Prism沙盒应用程序构建了一个repro,创建了一个新类型作为模型,让它在暂停时序列化并通过在调试位置工具栏中点击Suspend and shutdown
作为应用程序生命周期事件来观察它。
namespace HelloWorld.Models
{
public class MyModel
{
public MyModel() {}
public MyModel(string someText)
{
SomeText = someText;
}
public string SomeText { get; set; }
}
}
在viewmodel中:
[RestorableState]
public MyModel MyModel
{
get { return _myModel; }
set { SetProperty(ref _myModel, value); }
}
经过一番研究,我设法通过在运行时指令(Default.rd.xml)文件中添加以下行来解决崩溃:
<!-- Add your application specific runtime directives here. -->
<Namespace Name="HelloWorld.Models" Serialize="Required PublicAndInternal">
<Type Name="MyModel" Browse="Required Public" DataContractSerializer="Required Public"/>
</Namespace>
<强>的DataContractSerializer 强>
可选属性。控制使用System.Runtime.Serialization.DataContractSerializer类的序列化策略。
来源:MSDN