如何在本地部署并运行Data API Builder(DAB)服务?
在Windows Server 2022 + IIS 10.0环境部署Data API Builder(DAB)正式服务
前提准备
- 安装与DAB依赖匹配的.NET Core Hosting Bundle(如.NET 6/7),确保IIS具备托管.NET Core应用的能力
- 确认SQL Server 2022正常运行,部署机器可访问目标数据库
步骤1:生成DAB正式发布包
- 打开命令行,进入DAB项目所在目录
- 执行发布命令生成正式环境包:
dotnet publish -c Release -o "C:\DAB-Production" --self-contained false-c Release:编译正式环境版本-o:指定发布文件输出路径,可按需修改--self-contained false:依赖机器已安装的.NET运行时,减小包体积
步骤2:配置IIS应用程序池
- 打开IIS管理器,右键应用程序池 → 添加应用程序池
- 配置参数:
- 名称:例如
DAB-Prod-Pool - .NET CLR版本:选择DAB依赖的对应.NET版本(如
.NET 6.0) - 托管管道模式:集成
- 名称:例如
- 进入应用程序池高级设置:
- 将启动模式设为
AlwaysRunning,避免闲置自动回收 - 根据业务需求调整回收规则(如避开业务高峰时段)
- 将启动模式设为
步骤3:创建并配置IIS站点
- 右键网站 → 添加网站
- 填写站点信息:
- 网站名称:例如
DAB-Service - 物理路径:选择步骤1生成的发布目录(
C:\DAB-Production) - 绑定:设置访问端口(如8080)、主机名(按需配置)
- 应用程序池:选择步骤2创建的
DAB-Prod-Pool
- 网站名称:例如
- 点击确定完成站点创建
步骤4:配置DAB正式环境参数
- 打开发布目录下的
dab-config.json文件,修改核心配置:- 数据库连接字符串:指向本地SQL Server 2022,示例:
"data-source": "Server=localhost;Database=YourTargetDB;Integrated Security=True;TrustServerCertificate=True" - REST API启用:确保
rest节点处于启用状态,可按需设置路由前缀 - CORS配置:添加允许跨域访问的前端域名(如有需要),示例:
"cors": { "origins": ["https://your-frontend-domain.com"], "allow-credentials": true } - 认证授权:根据业务需求配置(如API Key认证),示例:
"authentication": { "provider": "ApiKey", "api-key": "YourSecureApiKey123" }
- 数据库连接字符串:指向本地SQL Server 2022,示例:
- 保存配置文件
步骤5:验证部署效果
- 启动IIS站点,访问
http://localhost:8080/health,返回{"status":"healthy"}则表示服务正常运行 - 测试REST API端点,例如访问已配置的实体路径
http://localhost:8080/api/YourEntity,验证数据读写功能是否正常
额外注意事项
- 权限配置:确保应用池运行身份(如
ApplicationPoolIdentity或指定账号)拥有SQL Server数据库的访问权限,需在SQL Server中为该账号分配对应角色/权限 - 日志配置:可在
dab-config.json中开启日志便于排查问题,示例:
同时可配置IIS站点日志,记录访问请求明细"logging": { "level": "Information", "output": "Console" }
内容的提问来源于stack exchange,提问作者kevmull




