Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/293.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/backbone.js/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 在Windows IoT核心上运行后台应用程序_C#_Win Universal App_Windowsiot - Fatal编程技术网

C# 在Windows IoT核心上运行后台应用程序

C# 在Windows IoT核心上运行后台应用程序,c#,win-universal-app,windowsiot,C#,Win Universal App,Windowsiot,我已经创建了一个BackgroundTask来运行Web服务,但是如果我运行带有调试器的解决方案,那么一切都可以正常运行,速度很慢,但是很好。但是当我在appmanager(webinterface)中点击start时,它总是说“启动包[MYPACKAGEID]失败”。那么我错过了什么 以下是完整的项目: 公共密封类StartupTask:IBackgroundTask { 内部静态背景任务延迟=null; 公共异步无效运行(IBackgroundTaskInstance taskInstanc

我已经创建了一个BackgroundTask来运行Web服务,但是如果我运行带有调试器的解决方案,那么一切都可以正常运行,速度很慢,但是很好。但是当我在appmanager(webinterface)中点击start时,它总是说“启动包[MYPACKAGEID]失败”。那么我错过了什么

以下是完整的项目:

公共密封类StartupTask:IBackgroundTask
{
内部静态背景任务延迟=null;
公共异步无效运行(IBackgroundTaskInstance taskInstance)
{
// 
//TODO:插入代码以执行后台工作
//
//如果在此处启动任何异步方法,请阻止该任务
//通过使用BackgroundTaskDelay作为
//描述于http://aka.ms/backgroundtaskdeferral
//
延迟=taskInstance.getDeleral();
等待ThreadPool.RunAsync(异步工作项=>{
RestWebServer RestWebServer=新的RestWebServer(80);
尝试
{
//初始化Web服务器
restWebServer.RegisterController();
restWebServer.RegisterController();
等待restWebServer.StartServerAsync();
}
捕获(例外情况除外)
{
Log.e(ex);
restWebServer.StopServer();
延迟。完成();
}
},工作频率高);
}
}

关键是代码甚至清单都没有问题,似乎设备处于“headed”模式时不需要运行,您需要将其设置为satrtup headless应用程序,然后重新启动设备

编辑:最新版本10.0.14279.1000解决了所有这些问题,现在GUI终于可以正常工作了。

我一直在努力解决这个问题,并且用这个方法取得了巨大的成功,这可能会帮助一些人。所有操作都在Power Shell中完成

将设备置于无头模式,在某种程度上我不认为这是强制性的,但没有它我就无法成功。 编辑:不再是这种情况,它现在应该正常工作。

以无头模式启动应用程序,并将其添加到启动应用程序列表中 要查看启动列表中有哪些应用,请键入

IOT启动

要添加无头应用程序,请键入命令

添加无头[Task1]

要添加无头应用程序,请键入命令

IOT无头启动[Task1]

要查找应用程序名称,可以使用以下命令

IOT启动列表

要查看您的应用是否在启动列表中,请键入

IOT启动

然后重新启动你的设备

我还遇到了一些问题,涉及到从启动时删除应用程序,然后尝试通过Visual Studio对其进行调试,在某些情况下,唯一的解决方案是用新图像刷新SD卡

获取可用命令的完整列表

public sealed class StartupTask : IBackgroundTask
{
    internal static BackgroundTaskDeferral Deferral = null;

    public async void Run(IBackgroundTaskInstance taskInstance)
    {
        // 
        // TODO: Insert code to perform background work
        //
        // If you start any asynchronous methods here, prevent the task
        // from closing prematurely by using BackgroundTaskDeferral as
        // described in http://aka.ms/backgroundtaskdeferral
        //

        Deferral = taskInstance.GetDeferral();

        await ThreadPool.RunAsync(async workItem => {

            RestWebServer restWebServer = new RestWebServer(80);
            try
            {
                // initialize webserver
                restWebServer.RegisterController<Controller.Home.Home>();
                restWebServer.RegisterController<Controller.PhilipsHUE.Main>();
                await restWebServer.StartServerAsync();
            }
            catch (Exception ex)
            {
                Log.e(ex);
                restWebServer.StopServer();
                Deferral.Complete();
            }

        }, WorkItemPriority.High);
    }
}