zoukankan      html  css  js  c++  java
  • 张高兴的 Windows 10 IoT 开发笔记:部署 ASP.NET Core 2 应用

    今天是大年初二,都去走亲戚了吧,享受一下这难得的能和亲友相聚的时光。而我就不一样了,今天一回到家就又开始瞎折腾了,哈哈哈。

    问题背景

    最近花了点时间用 ASP.NET Core 2 写了个个人博客,中间出了好多问题,过程弯弯曲曲的,但好歹最后还是完成部署在阿里云上了。这几天闲的没事看 .NET Core CLI,发现运行时标识符(Runtime IDentifier)居然有 win10-arm,这使我突然萌生了想把我的博客部署在 Raspberry Pi 上。(这就是纯属瞎折腾,部署在 Windows IoT 上确实没用,反正玩都玩了,干脆写篇博客吧...)

    发布(Publish)应用

    在将应用部署在 Windows IoT 上之前,首先是要以某种合适的方法将应用发布到本机。(Windows 10 IoT 只包含运行时)

    1. 更改项目输出类型

    打开项目“属性”,将“应用程序”选项中的“输出类型”,改为“控制台应用程序”。

    或者你也可以直接编辑 .csproj 文件,将 的值改为 Exe。

    2. 编辑 Program.cs

    和在 Linux 上部署一样, 在 BuildWebHost 里加上这么一句话 .UseUrls("http://:5000")。 作为主机名,5000 为监听端口。

    3. 在控制台发布

    在“工具”的“Nuget 包管理器”中,打开“程序包管理器控制台”。运行以下命令:

    dotnet publish -c release -r win10-arm
    

    因为是要部署在 Raspberry Pi 上, RID 用的 win10-arm。发布的路径是在 “你的项目inRelease etcoreapp2.0win10-armpublish”。

    部署应用

    部署要遵顼以下步骤

    1. 将发布文件复制到 Raspberry Pi

    怎么去复制文件随便,这里我用的是 WinSCP ,因为我自己管理 Linux 的时候就用的这个,习惯了。但在复制之前,要先启用 Windows IoT 的 FTP 管理。需要在 PowerShell 或者 Device Portal 运行命令:

    start C:WindowsSystem32ftpd.exe
    

    接下来就是运行你的 FTP 管理工具,新建一个文件夹,然后把文件复制进去即可。

    2. 配置防火墙

    使用 netsh 工具配置防火墙,运行命令:(一开始被这个问题困扰了半天,怎么都访问不到网站,做一个允悲的表情...)

    netsh advfirewall firewall add rule name=”ASP.NET Core Web Server port” dir=in action=allow protocol=TCP localport=5000
    

    3. 运行

    切换到相应的目录,运行 .exe 即可。

    问题

    嗯,我的博客没有在 Raspberry Pi 上跑起来(但上面的东西都是对的),来看看异常 Unable to load DLL 'sni.dll'

    这个问题通常引用一下 Nuget 包 System.Data.SqlClient 就好了,但在 Raspberry Pi 上没好... 我开始了在 GitHub 上翻 issue 的旅程,揪心的事情还是发生了,人家压根就没支持 arm32 ... 也就是说,不算定制镜像的话,只有 Raspberry Pi 是不支持的,Dragonboard 410c 是 arm64, MinnowBoard 是 x64 (允悲)... 让我们期待 Raspberry Pi 4 吧!

    我又新建了一个默认的项目,部署在了 Raspberry Pi 上,这下没问题了...

    但这一切并不能阻止我把博客部署在 Windows IoT 上,上虚拟机,终于成功了(摊手)...

  • 相关阅读:
    python requests用法总结
    Linux统计某文件夹下文件的个数
    PM2使用及介绍
    如何区分USB 2.0 和USB 3.0插口
    npm突然找不到npm-cli.js的解决方法
    mRemoteNG
    js中几种实用的跨域方法原理详解
    Tornado异步阻塞解决方案
    [阅读笔记]EfficientDet
    iOS 保存视频AVAssetWriter
  • 原文地址:https://www.cnblogs.com/zhanggaoxing/p/8452249.html
Copyright © 2011-2022 走看看