You cannot select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
11 KiB
11 KiB
浩景CNC机床数据采集分析系统 - 部署指南
文档信息
| 项目 | 内容 |
|---|---|
| 版本 | v1.0.0 |
| 日期 | 2026-04-13 |
| 部署方式 | 使用 deploy.ps1 一键构建 + IIS 手动配置 |
目录
1. 部署流程概述
目录结构(扁平化)
C:\wwwroot\haoliang\ ← IIS 网站根目录
├── Haoliang.Api.exe # 后端 API 主程序
├── Haoliang.Api.dll
├── appsettings.json # 开发配置
├── appsettings.Production.json # 生产配置 ← 需修改
├── web.config # IIS 配置文件
├── logs\ # 日志目录
├── data\ # 数据目录
├── admin\ # 管理后台 (访问 /admin/*)
│ ├── index.html
│ └── assets\
└── dashboard\ # BI 大屏 (访问 /dashboard/*)
├── index.html
└── assets\
访问地址
| 应用 | URL |
|---|---|
| API | http://localhost:5000/api/v1/* |
| Admin | http://localhost:5000/admin |
| Dashboard | http://localhost:5000/dashboard |
| Swagger | http://localhost:5000/swagger |
部署流程
┌─────────────────────────────────────────────────────────────┐
│ 1. 运行 deploy.ps1 构建项目 │
│ 输出: publish\wwwroot\ │
└─────────────────────────────────────────────────────────────┘
↓
┌─────────────────────────────────────────────────────────────┐
│ 2. 配置数据库 (MariaDB) │
│ ├─ 创建数据库和用户 │
│ └─ 导入 cnc_business.sql / cnc_log_fixed.sql │
└─────────────────────────────────────────────────────────────┘
↓
┌─────────────────────────────────────────────────────────────┐
│ 3. 复制文件到 IIS 目录 │
│ └─ publish\wwwroot\* → C:\wwwroot\haoliang\ │
└─────────────────────────────────────────────────────────────┘
↓
┌─────────────────────────────────────────────────────────────┐
│ 4. IIS 配置(极简:仅 1 个网站) │
│ └─ 网站 Haoliang,物理路径 C:\wwwroot\haoliang │
└─────────────────────────────────────────────────────────────┘
↓
┌─────────────────────────────────────────────────────────────┐
│ 5. 修改生产配置 │
│ └─ 修改 appsettings.Production.json 数据库连接 │
└─────────────────────────────────────────────────────────────┘
2. 第一步:运行部署脚本
2.1 执行构建
cd D:\git\git\haoliang
.\deploy.ps1
2.2 构建输出
D:\git\git\haoliang\publish\wwwroot\
├── Haoliang.Api.exe # 后端主程序
├── Haoliang.Api.dll
├── appsettings.json
├── appsettings.Production.json # ← 稍后修改
├── web.config
├── logs\
├── data\
├── admin\ # /admin 访问
│ ├── index.html
│ └── assets\
└── dashboard\ # /dashboard 访问
├── index.html
└── assets\
3. 第二步:配置数据库
3.1 登录 MariaDB
mysql -u root -p
3.2 创建数据库和用户
-- 创建专用数据库用户(请修改密码)
CREATE USER 'haoliang'@'localhost' IDENTIFIED BY 'YourStrongPassword123!';
CREATE USER 'haoliang'@'127.0.0.1' IDENTIFIED BY 'YourStrongPassword123!';
-- 创建业务库
CREATE DATABASE cnc_business CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci;
-- 创建日志库
CREATE DATABASE cnc_log CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci;
-- 授权
GRANT ALL PRIVILEGES ON cnc_business.* TO 'haoliang'@'localhost';
GRANT ALL PRIVILEGES ON cnc_log.* TO 'haoliang'@'localhost';
FLUSH PRIVILEGES;
3.3 导入数据库脚本
cd D:\git\git\haoliang\database
mysql -u haoliang -p cnc_business < cnc_business.sql
mysql -u haoliang -p cnc_log < cnc_log_fixed.sql
3.4 验证数据库
mysql -u haoliang -p -e "USE cnc_business; SHOW TABLES;"
mysql -u haoliang -p -e "USE cnc_log; SHOW TABLES;"
4. 第三步:复制文件到 IIS 目录
4.1 创建目标目录
New-Item -ItemType Directory -Path "C:\wwwroot\haoliang" -Force
New-Item -ItemType Directory -Path "C:\wwwroot\haoliang\logs" -Force
New-Item -ItemType Directory -Path "C:\wwwroot\haoliang\data" -Force
4.2 复制文件
Copy-Item -Path "D:\git\git\haoliang\publish\wwwroot\*" -Destination "C:\wwwroot\haoliang\" -Recurse -Force
4.3 验证目录结构
C:\wwwroot\haoliang\
├── Haoliang.Api.exe
├── web.config
├── appsettings.json
├── appsettings.Production.json
├── logs\
├── data\
├── admin\
│ ├── index.html
│ └── assets\
└── dashboard\
├── index.html
└── assets\
5. 第四步:IIS 配置
5.1 创建应用程序池
New-WebAppPool -Name "HaoliangApi"
Set-ItemProperty -Path "IIS:\AppPools\HaoliangApi" -Name "managedRuntimeVersion" -Value ""
Set-ItemProperty -Path "IIS:\AppPools\HaoliangApi" -Name "managedPipelineMode" -Value "Integrated"
Start-WebAppPool -Name "HaoliangApi"
5.2 创建网站(重要:直接指向根目录)
New-WebSite -Name "Haoliang" -PhysicalPath "C:\wwwroot\haoliang" -Port 5000 -ApplicationPool "HaoliangApi"
Start-WebSite -Name "Haoliang"
注意:物理路径直接指向
C:\wwwroot\haoliang,不是子目录。admin 和 dashboard 是文件目录,不需要创建 IIS 子应用。
5.3 设置目录权限
# API 目录权限
icacls "C:\wwwroot\haoliang" /grant "IIS AppPool\HaoliangApi:(OI)(CI)M"
icacls "C:\wwwroot\haoliang\logs" /grant "IIS AppPool\HaoliangApi:(OI)(CI)M"
icacls "C:\wwwroot\haoliang\data" /grant "IIS AppPool\HaoliangApi:(OI)(CI)M"
# 前端目录权限
icacls "C:\wwwroot\haoliang\admin" /grant "IIS_IUSRS:(OI)(CI)RX"
icacls "C:\wwwroot\haoliang\dashboard" /grant "IIS_IUSRS:(OI)(CI)RX"
5.4 防火墙配置(如需要)
New-NetFirewallRule -DisplayName "Haoliang API" -Direction Inbound -Protocol TCP -LocalPort 5000 -Action Allow -Profile Any
6. 第五步:修改生产配置
6.1 编辑配置文件
打开 C:\wwwroot\haoliang\appsettings.Production.json
6.2 修改数据库连接
{
"ConnectionStrings": {
"CNCBusinessDB": "Server=localhost;Database=cnc_business;User=haoliang;Password=YourStrongPassword123!;CharSet=utf8mb4;",
"CNCLLogDB": "Server=localhost;Database=cnc_log;User=haoliang;Password=YourStrongPassword123!;CharSet=utf8mb4;"
}
}
6.3 重启应用程序池
Restart-WebAppPool -Name "HaoliangApi"
7. 第六步:验证部署
7.1 检查服务状态
Get-WebSiteState -Name "Haoliang"
Get-WebAppPoolState -Name "HaoliangApi"
7.2 浏览器访问测试
| URL | 预期结果 |
|---|---|
| http://localhost:5000/ | API 响应 |
| http://localhost:5000/api/v1/health | 健康检查 JSON |
| http://localhost:5000/admin | 管理后台登录页 |
| http://localhost:5000/dashboard | BI 大屏首页 |
7.3 查看日志
Get-Content "C:\wwwroot\haoliang\logs\stdout_*.log" -Tail 20
Get-Content "C:\wwwroot\haoliang\logs\app-*.log" -Tail 20
8. 故障排查
8.1 常见错误
| 错误 | 原因 | 解决方案 |
|---|---|---|
| 500.19 | web.config 语法错误 | 检查 web.config |
| 500.21 | .NET Core 模块未安装 | 安装 Hosting Bundle |
| 502.5 | 应用程序启动失败 | 检查数据库连接 |
| 404 | 路径不存在 | 检查物理路径配置 |
8.2 排查步骤
# 1. 检查应用程序池状态
Get-WebAppPoolState -Name "HaoliangApi"
# 2. 查看错误日志
Get-Content "C:\wwwroot\haoliang\logs\stdout_*.log" | Select-String "Error"
# 3. 测试数据库连接
mysql -u haoliang -p -e "USE cnc_business; SELECT 1;"
# 4. 检查端口占用
netstat -an | findstr ":5000"
8.3 快速重启
Restart-WebAppPool -Name "HaoliangApi"
Start-WebSite -Name "Haoliang"
部署清单
[ ] 1. 运行 deploy.ps1 构建成功
[ ] 2. MariaDB 数据库已创建
[ ] 3. 数据库用户 haoliang 已创建并授权
[ ] 4. 数据库脚本已导入
[ ] 5. 文件已复制到 C:\wwwroot\haoliang
[ ] 6. 应用程序池 HaoliangApi 已创建
[ ] 7. 网站 Haoliang 已创建 (端口 5000,物理路径指向根目录)
[ ] 8. 目录权限已设置
[ ] 9. appsettings.Production.json 数据库连接已修改
[ ] 10. 应用程序池已重启
[ ] 11. 浏览器访问测试通过
文档最后更新:2026-04-13