当前位置:首页 > Windows程序 > 正文

张开心的 Windows 10 IoT 开发条记:部署 ASP.NET Core 2 应用

2024-03-31 Windows程序

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

问题配景

比来花了点时间用 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("*:5000")。* 作为主机名,5000 为监听端口。

技术分享图片

3. 在控制台颁布

在“工具”的“Nuget 承打点器”中,打开“措施承打点器控制台”。运行以下命令:

dotnet publish -c release -r win10-arm

因为是要部署在 Raspberry Pi 上, RID 用的 win10-arm。颁布的路径是在 “你的项目\bin\Release\netcoreapp2.0\win10-arm\publish”。

部署应用

部署要遵顼以下法式

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

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

start C:\Windows\System32\ftpd.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 上,上虚拟机,终于告成了(摊手)...

技术分享图片

温馨提示: 本文由Jm博客推荐,转载请保留链接: https://www.jmwww.net/file/34694.html

Jm-杰米博客Jamie
草根站长的技术交流乐园!IT不会不要紧快来好好学习吧!
  • 20786文章总数
  • 7494589访问次数
  • 建站天数
  • 友情链接