如何使用后台应用程序模板在Windows iot核心上运行服务器应用程序

时间:2017-10-29 17:29:41

标签: raspberry-pi3 asp.net-core-2.0 windows-10-iot-core .net-standard-2.0

我试图在IBackgroundTask中托管asp.net core 2.0 web api。后台任务部署在运行Windows 10 iot核心版本16299的raspberry pi 3上。

我的设置有两个项目:

  1. 用于托管Api的Windows iot后台应用程序。
  2. 一个.net标准2.0类库,包含控制器和启动类。
  3. 对于后台应用程序,我已检查了功能:

    • internetClient
    • internetClientServer
    • privateNetworkClientServer

    我使用以下代码运行Kestrel服务器:

    public void Run(IBackgroundTaskInstance taskInstance)
    {
        var deferral = taskInstance.GetDeferral();
        using (var host = WebHost.CreateDefaultBuilder()                
                                 .UseStartup<Startup>()
                                 .UseUrls("http://*:5001")
                                 .Build())
            host.Run();
        deferral.Complete();
    }
    

    使用以下powershell命令打开端口: netsh advfirewall防火墙添加规则名称=&#34; FezHat.Web.Api&#34; dir = in action = allow protocol = TCP localport = 5001

    但抛出以下异常:

      

    System.IO.IOException:&#39;无法绑定到地址http://[::]:5001:已在使用的地址。&#39;

    我尝试了不同的端口号,但异常不断抛出。 当我从我的PC上的.net核心控制台应用程序托管api时,api正常工作。

    关于如何在覆盆子pi 3上从iot后台应用程序托管api的任何建议? 先谢谢

1 个答案:

答案 0 :(得分:0)

这可能是一个错误的实例,继续从之前未正确处理的调试会话中运行。我会查看Microsoft Message Analyzer。这对我很有帮助。