请在现有小树旧站上部署独立、只读的数据同步桥,并按下列条件验收。旧站仍有客户使用,请保留现有网站与数据库业务数据。
https://a018.2018.z01.com/xiaoshu-sync/v1/health。/xiaoshu-sync 子应用及 IIS 日志子状态,确认是否未部署或映射错误。zatu2024,SQL Server 2016 / 13.0.5026.0,服务器名 SZ02;部署时请再次确认,不得误连其他网站数据库。交付压缩包中 bridge/xiaoshu-legacy-sync-bridge-iis.zip 为 Windows x64 自包含发布。请先把它展开到独立安装目录,例如 C:\deploy\xiaoshu-legacy-sync,以下命令均从该目录执行。
桥包 SHA-256:d1e2b65f9c81a5f7e0a2c4855a8bea2380361e11f929ca4111a79efe74cab7b9。
桥包包含 runtime、安装/测试/回滚脚本、SQL 安装及核验脚本、配置模板和 README;不包含正式密钥和连接串。三个部署脚本已与当前源码逐字比对,包内没有 appsettings.Production.json。
| 参数 | 负责方与要求 |
|---|---|
| 实际 IIS SiteName | 旧站托管方确认绑定 a018.2018.z01.com 的站点名称,不能直接默认 Default Web Site |
| SQL 连接串 | 旧站托管方提供具备必要读取权限的专用连接;DDL 安装另用有权限的账号,不在工单回执中回传密码 |
| HMAC KeyId / Secret | 部署管理员生成新的 KeyId 与至少 32 位随机 Secret,通过双方约定的安全渠道交给新系统管理员 |
| AllowedIps | 新系统管理员提供真实服务器出口 IP;DNS 的入站 IP 或开发电脑 IP 不等于实际出口 IP |
| 独立应用池和目录 | 建议 XiaoshuLegacySync、C:\inetpub\xiaoshu-sync;不得与旧站根应用共用应用池 |
缺少其中任何一项时请明确回报缺项,不得用空配置或开放任意来源的方式代替。若当前托管套餐不支持独立 IIS 子应用,请先回报限制及可提供的独立服务/受控反向代理方案,不要只上传文件后宣布完成。
deployment/appsettings.Production.template.json 复制到 C:\secure\xiaoshu-sync.production.json,安全填写上述参数。PathBase 保持 /xiaoshu-sync;不填占位值,不将配置打包回传。在管理员 Windows PowerShell 中确认实际站点、域名绑定并预检:
Import-Module WebAdministration
Get-Website | Select-Object Name, State, PhysicalPath
Get-WebBinding | Select-Object ItemXPath, Protocol, BindingInformation
$targetSite = Read-Host '绑定 a018.2018.z01.com 的实际 IIS 站点名称'
.\deployment\Install-XiaoshuLegacySyncBridge.ps1 -PublishPath . -ConfigurationPath C:\secure\xiaoshu-sync.production.json -SiteName $targetSite -HealthUrl https://a018.2018.z01.com/xiaoshu-sync/v1/health -PreflightOnly
预检通过后安装独立应用,先确认外部健康地址能返回本桥服务身份。健康接口本身不依赖 SQL 同步表:
.\deployment\Install-XiaoshuLegacySyncBridge.ps1 -PublishPath . -ConfigurationPath C:\secure\xiaoshu-sync.production.json -SiteName $targetSite -HealthUrl https://a018.2018.z01.com/xiaoshu-sync/v1/health
与新系统管理员确认消费端、凭据和后续部署准备好后,在确认过的旧库执行 database/install.sql,再执行 database/verify-readonly.sql。SQL 脚本是多个 GO 分隔的批次,应使用 SSMS/sqlcmd 的正常脚本执行方式。确认两个日志表、一个失败关闭的命令过程及 12 个变更触发器,WritesFailClosed=1。不要修改业务字段、执行写桥命令、清空变更日志或业务表。
执行真实签名与数据库读取验收;只返回健康 200 不够:
.\deployment\Test-XiaoshuLegacySyncBridge.ps1 -BaseUrl https://a018.2018.z01.com/xiaoshu-sync -ConfigurationPath C:\secure\xiaoshu-sync.production.json
应通过健康身份、签名 manifest、11 个数据集 changes 首页读取。manifest.consistent=false 表示读取期间旧库变化,需稍后重试,不应修改程序强行判定通过。不能用静态 JSON 页面替代服务。
旧站托管方完成桥部署不等于夜间同步完成。新系统还需安全配置 XIAOSHU_LEGACY_SYNC_BASE_URL、KEY_ID、SECRET;验收全数据集“保留新系统修改、记录冲突”和主附表原子性;完成一次真实同步及业务 ID/校验和对账,保留 684 条待核对冲突;最后安装并验收每天 Asia/Shanghai 23:00 的服务器任务。不得通过手工修改 checkpoint 或将全部冲突标记解决来通过验收。
当前聊天的 23 点自动任务会记录阻塞并检查后续部署结果;它不替代服务器端作业。请按职责分工回传旧桥部署和新系统接入各自的验收结果。