会话状态服务失败 - UWP

Session state service failed - UWP

我正在开发 UWP 应用程序,使用 Prism 6.0 我的应用程序在调试和发布模式下都工作得很好,但是当我在应用程序包上使用 运行 Windows 应用程序认证工具包时,我不断收到此应用程序错误 - "Session state service failed"。我在安装应用程序包和 运行 应用程序时从未见过此异常。但是每次当 WACK 是 运行 包时,我都会得到这个异常。

正因为如此,

我在 Windows 应用程序认证工具包 - 测试结果中遇到错误。

错误是: 失败 崩溃并挂起

•发现错误:崩溃和挂起测试检测到以下错误:◦可执行文件 C:\Program Files\WindowsApps486username.SongApp_1.1.0.0_x86__5q2wmk4fv784y\SongApp.exe 被 [检测到=46=] 错误报告并遇到崩溃或挂起。 ◦应用程序 10486username.SongApp_1.1.0.0_x86__5q2wmk4fv784y 被 Windows 错误报告检测到并遇到崩溃或挂起。

•影响(如果不修复):停止响应或崩溃的应用程序可能会导致数据丢失并且用户体验不佳。

•如何解决:调查和调试应用程序以识别和解决问题。

失败 Direct3D trim 暂停后

•发现错误:挂起测试后的 Direct3D Trim 检测到以下错误:测试结束时应用程序不是 运行。它可能崩溃或因变得无响应而被终止。

•如果不修复影响:如果应用程序不在其 Direct3D 设备上调用 Trim,应用程序将不会释放分配给其早期 3D 作品的内存。这会增加应用程序因系统内存压力而被终止的风险。

•如何解决:应用程序应在其即将暂停的任何时候在其 IDXGIDevice3 接口上调用 Trim API。

我已经使用 Prism 沙盒应用程序创建了一个重现模型,创建了一个新类型作为模型,在暂停时对其进行了序列化,并通过在调试位置工具栏中将 Suspend and shutdown 作为应用程序生命周期事件来观看它崩溃。

namespace HelloWorld.Models
{
    public class MyModel
    {
        public MyModel() {}

        public MyModel(string someText)
        {
            SomeText = someText;
        }

        public string SomeText { get; set; }
    }
}

在视图模型中:

[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

Optional attribute. Controls policy for serialization that uses the System.Runtime.Serialization.DataContractSerializer class.

来源:MSDN