本地部署IIS服务及MQTT服务
概述
ASP .NET Core3.1项目创建IIS服务和mqtt服务。
配置IIS
安装windows功能
在控制面板-程序和功能-启用或关闭windows功能中,按照下图中的选项勾选相应内容,联网安装IIS相关服务。
配置应用程序
打开IIS服务
在控制面板-管理工具中(控制面板中找不到的话选择"小图标")找到Internet Information Services (IIS)管理器。
安装aspnetcore-runtime
下载链接:https://dotnet.microsoft.com/download/dotnet-core/3.1
安装dotnet-hosting
下载链接: https://www.microsoft.com/net/permalink/dotnetcore-current-windows-runtime-bundle-installer
检查
上述两个包安装完成后,点击本地服务器,在模块选项中应该可以看到AspNetCoreModuleV2这个模块。
添加网站
在网站名称填入网站项目名称,物理路径填发布项目的物理路径,绑定IP地址和端口号。
配置应用程序
网站配置完成后,点击左侧的应用程序池菜单栏会自动出现网站的应用程序,点击基本配置,设置为“无托管代码”。项目启动后,点击网站,可以访问网站就配置完成了。
配置IIS通过外部IP访问
修改.vs配置文件
在项目路径下..vs\xxx\config中找到applicationhost.config文件,找到下图位置
原始应该只绑定了localhost,在后面增加电脑的外网IP
命令行设置
cmd 输入:netsh http add urlacl url=http://192.168.1.107:1111/ user=everyone
防火墙设置端口对外访问
1.打开windows安全中心-防火墙和网络保护-高级设置
2.入站规则-新建规则-端口
3.特定本地端口,填入项目的端口号,后面全部下一步,然后起个名字就OK。
配置MQTT服务
下载安装启动
前后端分离项目,后端通过MQTT消息向前端主动推送数据,本项目使用emqx进行开发,在windows环境下。
1.下载emqx
下载链接:https://www.emqx.cn/downloads#broker
打开链接,选择windows版本
2.配置emqx
打开链接:127.0.0.1:8083进入配置页面,默认用户名:admin密码public
3.启动emqx
在安装路径下的emqx/bin路径下通过cmd输入命令行:emqx start。服务就启动了
4.各种指令
可以参考官方文档:https://docs.emqx.cn/cn/broker/latest/getting-started/command-line.html
缺少MSVCR120.DLL文件报错
有些情况打开服务时会报错,提示缺少MSVCR120.DLL文件,基本上是因为缺少了一些c++文件,通过DirectX工具进行安装即可。
服务对外访问
1.首先按照之前的IIS对外访问步骤中的防火墙设置,入站规则中开放对外端口,通常MQTT的端口设置为1883,8083,18083.
2.在路由器设置中找到地址转换-虚拟服务器-新增虚拟服务器
按照如图的配置,设置外网访问的IP和端口号。
3.后台项目也需要将BrokerHostName和BrokerPort设置为对应的主机地址和端口号。
4.一个主机IP对应一个MQTT服务,若需要多个项目发送MQTT消息,则需要安装虚拟机。