前言
这是本系列的最后一章,将详细介绍如何将完整的工厂环境监测系统部署到生产服务器,并保障其长期稳定运行。
IIS 部署
Project.Web(ASP.NET MVC)
- 在 Visual Studio 中右键点击
Project.Web项目,选择“发布”。 - 选择“文件夹”发布方式,将输出目录指向本地或网络上的目标文件夹。
- 在服务器的 IIS 管理器中,添加一个新网站,将物理路径指向上一步的发布目录。
端口与 IP 绑定
开发时通常使用 IIS Express,其绑定配置位于项目目录下的 .vs/config/applicationhost.config 文件中:
<bindings>
<binding protocol="http" bindingInformation="*:55972:localhost" />
<binding protocol="http" bindingInformation="*:55972:192.168.1.243" />
</bindings>
在生产环境的 IIS 中,需要在网站绑定设置里,绑定到服务器的实际 IP 地址(或使用“全部未分配”)和 80(HTTP)或 443(HTTPS)端口。
WebApi(.NET Core)
.NET Core 应用可以直接使用内置的 Kestrel 服务器运行,也可以部署在 IIS 后面作为反向代理(推荐,便于管理)。
在 appsettings.json 中配置 Kestrel 的端点:
{
"Kestrel": {
"Endpoints": {
"Http": {
"Url": "http://192.168.1.243:85"
}
}
}
}
数据库连接配置
连接字符串需要根据生产环境数据库的实际情况进行配置。
对于 ASP.NET MVC 项目(Project.Web),配置在 Web.config 文件中:
<connectionStrings>
<add name="Default"
connectionString="Server=数据库服务器地址;Database=PzDB;User Id=sa;Password=你的密码;"
providerName="System.Data.SqlClient" />
</connectionStrings>
对于 .NET Core WebApi 项目,配置在 appsettings.json 文件中:
{
"ConnectionStrings": {
"Default": "Server=数据库服务器地址;Database=PzDB;User Id=sa;Password=你的密码;"
}
}
死锁处理
在高并发场景下,数据库死锁是常见问题。前面章节介绍过的 EF Core 重试策略是运维中的重要配置,可以在 DbContext 配置时启用:
options.UseSqlServer(connectionString, sqlOptions =>
sqlOptions.EnableRetryOnFailure(
maxRetryCount: 3,
maxRetryDelay: TimeSpan.FromSeconds(5),
errorNumbersToAdd: null)
);
同时,建议在 SQL Server 层面优化索引设计,并尽量避免长时间、大范围的事务,以减少锁竞争。
日志监控
系统使用 ASP.NET Core 内置的 ILogger 接口输出日志。生产环境建议将日志接入专业的收集和分析工具(如 Serilog + Seq,或 ELK 栈)。
日志记录示例:
_logger.LogInformation("[TCP传感器] 客户端连接: {Endpoint}", client.Client.RemoteEndPoint);
_logger.LogError(ex, "[TCP传感器] 保存数据失败");
日志文件的路径、级别和滚动策略可以在 appsettings.json 或 appsettings.Production.json 中配置。
项目代码管理
本项目代码托管在 Gitee 平台,日常开发流程遵循标准的 Git 工作流:
git add .
git commit -m "修改说明"
git push origin master
项目分为两个独立的代码仓库进行管理:
| 仓库 | 内容 |
|---|---|
| yun | 工厂环境监测 Web 系统(包含前端、后端、服务) |
| firmware | STC12 单片机固件(传感器数据采集程序) |
小结
本文从需求分析、架构设计,到数据采集、前端展示、后台管理,再到部署运维,完整覆盖了一个工厂环境监测系统的全生命周期。
以下是本系列八个章节的回顾:
- 项目概述与架构设计 – 明确需求,规划技术栈与整体架构。
- TCP 传感器数据采集与解析 – 实现与硬件传感器的通信和数据解码。
- 数据库设计与 Entity Framework 实战 – 设计数据模型,并利用 EF Core 进行数据操作。
- 前端监控大屏与实时数据展示 – 使用 ECharts 构建可视化监控界面。
- 工厂与设备管理 – 实现后台管理系统,管理工厂、车间和设备信息。
- 系统 Logo 与品牌定制 – 为系统设计视觉标识,提升专业度。
- Windows 服务与定时任务 – 开发 Windows 服务,实现数据定时采集与处理。
- 部署与运维 – 将系统部署到服务器,并配置监控、日志等运维保障措施。
希望这个完整的实战系列能对正在开发类似物联网或工业监测系统的开发者有所帮助!
:部署与运维&spm=1001.2101.3001.5002&articleId=163499606&d=1&t=3&u=5c921fb6138b41de9e5db392dc30a688)
283

被折叠的 条评论
为什么被折叠?



