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.

13 KiB

浩景CNC机床数据采集分析系统 - 部署指南

文档信息

项目 内容
版本 v1.0.0
日期 2026-04-13
部署方式 使用 deploy.ps1 一键构建 + IIS 手动配置

目录

  1. 部署流程概述
  2. 第一步:运行部署脚本
  3. 第二步:配置数据库
  4. 第三步:复制文件到 IIS 目录
  5. 第四步IIS 配置
  6. 第五步:修改生产配置
  7. 第六步:验证部署
  8. 故障排查

1. 部署流程概述

部署分为以下步骤:

┌─────────────────────────────────────────────────────────────┐
│  1. 运行 deploy.ps1 构建项目                                 │
│     └─> 输出目录: publish\wwwroot\                          │
│         ├── api\           (后端 API)                       │
│         ├── admin\         (管理后台)                       │
│         └── dashboard\     (BI 大屏)                        │
└─────────────────────────────────────────────────────────────┘
                            ↓
┌─────────────────────────────────────────────────────────────┐
│  2. 配置数据库 (MariaDB)                                     │
│     ├─ 创建数据库和用户                                      │
│     └─ 导入数据库脚本 cnc_business.sql / cnc_log_fixed.sql  │
└─────────────────────────────────────────────────────────────┘
                            ↓
┌─────────────────────────────────────────────────────────────┐
│  3. 复制文件到 IIS 目录                                      │
│     └─ publish\wwwroot\* → C:\wwwroot\haoliang\            │
└─────────────────────────────────────────────────────────────┘
                            ↓
┌─────────────────────────────────────────────────────────────┐
│  4. IIS 配置                                                │
│     ├─ 创建应用程序池 HaoliangApi                           │
│     ├─ 创建网站 Haoliang (端口 5000)                        │
│     └─ 创建子应用 admin / dashboard                         │
└─────────────────────────────────────────────────────────────┘
                            ↓
┌─────────────────────────────────────────────────────────────┐
│  5. 修改生产配置                                             │
│     └─ 修改 appsettings.Production.json 中的数据库连接       │
└─────────────────────────────────────────────────────────────┘

2. 第一步:运行部署脚本

2.1 执行构建

在项目根目录下执行部署脚本:

cd D:\git\git\haoliang
.\deploy.ps1

2.2 脚本输出

构建成功后,输出目录结构如下:

D:\git\git\haoliang\publish\wwwroot\
├── api\
│   ├── Haoliang.Api.exe          # 主程序
│   ├── Haoliang.Api.dll
│   ├── appsettings.json          # 开发配置
│   ├── appsettings.Production.json  # 生产配置 ← 稍后修改
│   ├── web.config                # IIS 配置文件
│   ├── logs\                     # 日志目录
│   └── data\                     # 数据目录
├── admin\
│   ├── index.html
│   ├── assets\
│   └── ...
└── 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;"

预期输出:

  • cnc_business 库包含Devices, Users, Templates, AlarmRules, ProductionRecords 等表
  • cnc_log 库包含CollectionLogs, SystemLogs, ExceptionLogs 等表

4. 第三步:复制文件到 IIS 目录

4.1 创建目标目录

# 创建部署根目录
New-Item -ItemType Directory -Path "C:\wwwroot\haoliang" -Force

# 创建子目录
New-Item -ItemType Directory -Path "C:\wwwroot\haoliang\api" -Force
New-Item -ItemType Directory -Path "C:\wwwroot\haoliang\api\logs" -Force
New-Item -ItemType Directory -Path "C:\wwwroot\haoliang\api\data" -Force
New-Item -ItemType Directory -Path "C:\wwwroot\haoliang\admin" -Force
New-Item -ItemType Directory -Path "C:\wwwroot\haoliang\dashboard" -Force

4.2 复制文件

# 复制 API 文件
Copy-Item -Path "D:\git\git\haoliang\publish\wwwroot\api\*" -Destination "C:\wwwroot\haoliang\api\" -Recurse -Force

# 复制 Admin 文件
Copy-Item -Path "D:\git\git\haoliang\publish\wwwroot\admin\*" -Destination "C:\wwwroot\haoliang\admin\" -Recurse -Force

# 复制 Dashboard 文件
Copy-Item -Path "D:\git\git\haoliang\publish\wwwroot\dashboard\*" -Destination "C:\wwwroot\haoliang\dashboard\" -Recurse -Force

4.3 验证复制结果

C:\wwwroot\haoliang\
├── api\
│   ├── Haoliang.Api.exe
│   ├── web.config
│   ├── appsettings.json
│   ├── appsettings.Production.json
│   ├── logs\
│   └── data\
├── admin\
│   ├── index.html
│   └── assets\
└── dashboard\
    ├── index.html
    └── assets\

5. 第四步IIS 配置

5.1 创建应用程序池

方式一PowerShell推荐

# 创建应用程序池
New-WebAppPool -Name "HaoliangApi"
Set-ItemProperty -Path "IIS:\AppPools\HaoliangApi" -Name "managedRuntimeVersion" -Value ""
Set-ItemProperty -Path "IIS:\AppPools\HaoliangApi" -Name "managedPipelineMode" -Value "Integrated"
Set-ItemProperty -Path "IIS:\AppPools\HaoliangApi" -Name "startMode" -Value "OnDemand"
Start-WebAppPool -Name "HaoliangApi"

方式二IIS 管理器

  1. 打开 IIS 管理器
  2. 右键 应用程序池添加应用程序池
  3. 配置:
配置项
名称 HaoliangApi
.NET CLR 版本 无托管代码
托管管道模式 集成

5.2 创建网站

方式一PowerShell推荐

New-WebSite -Name "Haoliang" -PhysicalPath "C:\wwwroot\haoliang\api" -Port 5000 -ApplicationPool "HaoliangApi"
Start-WebSite -Name "Haoliang"

方式二IIS 管理器

  1. 右键 网站添加网站
  2. 配置:
配置项
网站名称 Haoliang
物理路径 C:\wwwroot\haoliang\api
端口 5000
应用程序池 HaoliangApi

5.3 创建子应用程序

# 创建 Admin 子应用
New-WebApplication -Name "admin" -Site "Haoliang" -PhysicalPath "C:\wwwroot\haoliang\admin" -ApplicationPool "HaoliangApi"

# 创建 Dashboard 子应用
New-WebApplication -Name "dashboard" -Site "Haoliang" -PhysicalPath "C:\wwwroot\haoliang\dashboard" -ApplicationPool "HaoliangApi"

# 验证配置
Get-WebApplication -Site "Haoliang"

预期输出:

Name         Path       PhysicalPath
----         ----       ------------
admin        /admin     C:\wwwroot\haoliang\admin
dashboard    /dashboard C:\wwwroot\haoliang\dashboard

5.4 设置目录权限

# API 目录权限
icacls "C:\wwwroot\haoliang\api" /grant "IIS AppPool\HaoliangApi:(OI)(CI)M"
icacls "C:\wwwroot\haoliang\api\logs" /grant "IIS AppPool\HaoliangApi:(OI)(CI)M"
icacls "C:\wwwroot\haoliang\api\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.5 防火墙配置(如需要)

# 开放端口
New-NetFirewallRule -DisplayName "Haoliang API" -Direction Inbound -Protocol TCP -LocalPort 5000 -Action Allow -Profile Any

6. 第五步:修改生产配置

6.1 编辑配置文件

用记事本或其他编辑器打开:

C:\wwwroot\haoliang\api\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 浏览器访问测试

地址 预期结果
http://localhost:5000/ API 响应JSON 或空白页)
http://localhost:5000/api/v1/health 健康检查 JSON
http://localhost:5000/admin 管理后台登录页
http://localhost:5000/dashboard BI 大屏首页

7.3 查看日志

# 查看 stdout 日志
Get-Content "C:\wwwroot\haoliang\api\logs\stdout_*.log" -Tail 20

# 查看应用日志
Get-Content "C:\wwwroot\haoliang\api\logs\app-*.log" -Tail 20

8. 故障排查

8.1 常见错误

错误 原因 解决方案
500.19 web.config 语法错误 检查 web.config 文件
500.21 .NET Core 模块未安装 安装 .NET Core Hosting Bundle
502.5 应用程序启动失败 检查 appsettings.Production.json 数据库连接
502.3 托管模块配置错误 检查 web.config 中 AspNetCore 模块
404.0 路径不存在 检查物理路径配置

8.2 排查步骤

# 1. 检查应用程序池是否启动
Get-WebAppPoolState -Name "HaoliangApi"

# 2. 查看详细错误日志
Get-Content "C:\wwwroot\haoliang\api\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. 数据库脚本已导入 (cnc_business.sql, cnc_log_fixed.sql)
[ ] 5. 文件已复制到 C:\wwwroot\haoliang
[ ] 6. 应用程序池 HaoliangApi 已创建
[ ] 7. 网站 Haoliang 已创建 (端口 5000)
[ ] 8. 子应用 admin 已创建
[ ] 9. 子应用 dashboard 已创建
[ ] 10. 目录权限已设置
[ ] 11. appsettings.Production.json 数据库连接已修改
[ ] 12. 应用程序池已重启
[ ] 13. 浏览器访问测试通过

文档最后更新2026-04-13