张高兴的 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。发布的路径是在 “你的项目\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 上,上虚拟机,终于成功了(摊手)...
张高兴的 Windows 10 IoT 开发笔记:部署 ASP.NET Core 2 应用相关推荐
- 张高兴的 Windows 10 IoT 开发笔记:BH1750FVI 光照度传感器
张高兴的 Windows 10 IoT 开发笔记:BH1750FVI 光照度传感器 原文:张高兴的 Windows 10 IoT 开发笔记:BH1750FVI 光照度传感器 BH1750FVI 是一款 ...
- 张高兴的 Windows 10 IoT 开发笔记:RTC 时钟模块 DS3231
原文:张高兴的 Windows 10 IoT 开发笔记:RTC 时钟模块 DS3231 GitHub:https://github.com/ZhangGaoxing/windows-iot-demo/ ...
- 张高兴的 Windows 10 IoT 开发笔记:使用 ADS1115 读取模拟信号
考虑到 Raspberry Pi 读取模拟信号是很烦人的事情,更何况是在没人玩的 Windows 10 IoT 下,所以准备正儿八经的写点东西. 需求:使用 Raspberry Pi 读取输出模拟信号 ...
- 张高兴的 Windows 10 IoT 开发笔记:FM 电台模块 KT0803L
GitHub:https://github.com/ZhangGaoxing/windows-iot-demo/tree/master/KT0803L
- 张高兴的 Windows 10 IoT 开发笔记:BMP180 气压传感器
注意:海拔高度仅供参考 GitHub : https://github.com/ZhangGaoxing/windows-iot-demo/tree/master/BMP180Demo
- 张高兴的 Windows 10 IoT 开发笔记:红外温度传感器 MLX90614
GitHub : https://github.com/ZhangGaoxing/windows-iot-demo/tree/master/MLX90614 转载于:https://www.cnblo ...
- 张高兴的 Windows 10 IoT 开发笔记:DHT11 温湿度传感器
GitHub : https://github.com/ZhangGaoxing/windows-iot-demo/tree/master/DHT11Demo 转载于:https://www.cnbl ...
- 张高兴的 Windows 10 IoT 开发笔记:ADXL345 加速度传感器
GitHub : https://github.com/ZhangGaoxing/windows-iot-demo/tree/master/ADXL345Demo 转载于:https://www.cn ...
- 张高兴的 Windows 10 IoT 开发笔记:使用 ULN2003A 控制步进电机
GitHub:https://github.com/ZhangGaoxing/windows-iot-demo/tree/master/ULN2003A
- Windows 10 IoT Serials 1 - 针对Minnow Board MAX的Windows 10 IoT开发环境搭建
目前,微软针对Windows IoT计划支持的硬件包括树莓派2,Minnow Board MAX 和Galileo (Gen 1和Gen 2).其中,Galileo (Gen 1和Gen 2)运行的是 ...
最新文章
- Linux主辅DNS数据不同步故障排除
- 小程序provisional headers are shown_万圣节~英语早教绘本Five Little Pumpkins五个小南瓜...
- 在MRC模式下使用SDWebImage
- 【Android NDK 开发】Android Studio 的 NDK 配置 ( 源码编译配置 | 构建脚本配置 | 打包配置 | CMake 配置 | ndkBuild 配置 )
- BOOST_VMD_ASSERT_IS_EMPTY宏相关的测试程序
- boost::hana模块使用 Hana 实现基本维度分析的示例
- uvm_comps.svh
- 大数据集群某节点彻底损毁后重装系统恢复(持续更新中)
- mysql 函数怎样创建_mysql里怎样创建函数
- MinIO Docker 快速入门
- Linux中log打印输入输出的格式字符串
- 从无线安全到内网渗透[1]
- linux打包根目录
- latex如何打空格
- mysql .idb_mysql.idb
- python tokenize()_tokenize- 用于Python源代码的Python – Python语言服务(Python教程)(参考资料)...
- uva 10537 The Toll! Revisited
- php开发-如何调用后端服务
- 蓝牙降噪耳机哪个比较好?四大热门降噪蓝牙耳机推荐
- 数据结构查找-7-7 词典 (15 分)
热门文章
- 全球100ai顶尖科学家_如何为顶尖学校学习AI撰写成功的目标陈述
- 游戏ai人工智能_AI与游戏,第1部分:游戏如何推动了两门AI研究流派
- 小学六年级计算机教案超链接,六年级信息技术《制作其他网页》优秀教案
- 计算机网络ip地址博客,计算机网络中,这些IP地址你知道吗?
- qt设置背景图片变黑色_PS软件如何快速制作一个黑色创意海报
- MFC 多字节和UNICODE的相互转换(解决中文utf8-ASCNII乱码问题)
- HDU 2686 MCMF
- 《嵌入式 Linux C 语言应用程序设计(修订版)》——2.1 嵌入式Linux下C语言概述...
- jQuery事件委派与移除
- redis java客户端封装_redis的java客户端Jedis简单封装