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

问题背景

最近花了点时间用 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 应用的更多相关文章

  1. 张高兴的 Windows 10 IoT 开发笔记:使用 ADS1115 读取模拟信号

    考虑到 Raspberry Pi 读取模拟信号是很烦人的事情,更何况是在没人玩的 Windows 10 IoT 下,所以准备正儿八经的写点东西. 需求:使用 Raspberry Pi 读取输出模拟信号 ...

  2. 张高兴的 Windows 10 IoT 开发笔记:使用 Lightning 中的软件 PWM 驱动 RGB LED

    感觉又帮 Windows 10 IoT 开荒了,所以呢,正儿八经的写篇博客吧.其实大概半年前就想写的,那时候想做个基于 Windows 10 IoT 的小车,但树莓派原生不支持 PWM 啊.百度也搜不 ...

  3. 张高兴的 Windows 10 IoT 开发笔记:HC-SR04 超声波测距模块

    HC-SR04 采用 IO 触发测距.下面介绍一下其在 Windows 10 IoT Core 环境下的用法. 项目运行在 Raspberry Pi 2/3 上,使用 C# 进行编码. 1. 准备 H ...

  4. 张高兴的 Windows 10 IoT 开发笔记:BH1750FVI 光照度传感器

    BH1750FVI 是一款 IIC 接口的数字型光强度传感器集成电路.下面介绍一下其在 Windows 10 IoT Core 环境下的用法. 项目运行在 Raspberry Pi 2/3 上,使用 ...

  5. 张高兴的 Windows 10 IoT 开发笔记:串口红外编解码模块 YS-IRTM

    This is a Windows 10 IoT Core project on the Raspberry Pi 2/3, coded by C#. GitHub: https://github.c ...

  6. 张高兴的 Windows 10 IoT 开发笔记:无线收发芯片 nRF24L01

    This is a Windows 10 IoT Core project on the Raspberry Pi 2/3, coded by C#. GitHub:https://github.co ...

  7. 张高兴的 Windows 10 IoT 开发笔记:FM 电台模块 KT0803L

    This is a Windows 10 IoT Core project on the Raspberry Pi 2/3, coded by C#. GitHub:https://github.co ...

  8. 张高兴的 Windows 10 IoT 开发笔记:0.96 寸 I2C OLED

    This is a Windows 10 IoT Core project on the Raspberry Pi 2/3, coded by C#. GitHub:https://github.co ...

  9. 张高兴的 Windows 10 IoT 开发笔记:使用 MAX7219 驱动数码管

    This is a Windows 10 IoT Core project on the Raspberry Pi 2/3, coded by C#. GitHub:https://github.co ...

随机推荐

  1. UEP-添加表格

    UEP中添加新的表格标签:function initCustomToolBar(){ var strHtml="<table> <tr> <td id=\&qu ...

  2. python基础2 day3

    一.上节回顾 1,while else2,格式化输出name = input('>>>')s1 = '我叫%s,今年%d岁'%(name,18)dic1name = input('& ...

  3. 启动tomcat时,一直卡在Deploying web application directory这块的解决方案

    本来今天正常往服务器上扔一个tomcat 部署一个项目的, 最后再启动tomcat 的时候 发现项目一直都访问不了,看了一下日志: [root@iz8vbdzx7y7owm488t4d89z bin] ...

  4. git生成sshkey

  5. thinkphp开发微信公众号时,验证基本配置提示请求url超时

    原因在index.php入口文件中必须有define('APP_NAME', 'Weixin'); 服务器url:http://bxu2713700584.my3w.com/Weixin/Index/ ...

  6. DEDE中如何过滤掉Html标签,并且截取字符串长度

    在dede标签中只要使用2个函数就可以. [field:body function="cn_substr(Html2text(@me),80)"/] Html2text()函数是去 ...

  7. DALI 2.0解码模块

    DALI2.0调光解码模块使用手册 一.概述(联系人:张先生,电话:13923882807,QQ:813267849) 欢迎使用本公司的DALI 2.0解码模块,该模块支持"DALI第二套协 ...

  8. J.U.C ThreadPoolExecutor解析

    Java里面线程池顶级接口是Executor,但严格意义上讲Executor并不是一个线程池,而是一个线程执行工具,真正的线程池接口是ExecutorService.关系类图如下: 首先Executo ...

  9. CCF系列之字符串匹配(201409-3)

    试题编号:201409-3试题名称:字符串匹配时间限制: 1.0s内存限制: 256.0MB 问题描述 给出一个字符串和多行文字,在这些文字中找到字符串出现的那些行.你的程序还需支持大小写敏感选项:当 ...

  10. Altium designer知识总结

    原理图库文件 =原理图元件库 .schlibPCB库文件=封装库.pcblib 集成库=原理图库文件+封装库 .intlib