BizTalk Server 2020 WCF-WebHttp适配器SQL登录失败配置求助
解决BizTalk Server 2020 WCF-WebHttp适配器SQL身份验证失败问题
从你提供的错误日志来看,核心问题是IIS应用池使用的机器账户(QUBIZ\LPT16$)没有SQL Server的登录权限——WCF-WebHttp属于隔离适配器,它的运行上下文依赖对应的IIS应用池身份,这个账户目前无法访问BizTalk的配置数据库或相关SQL实例。下面是具体的配置调整步骤:
1. 调整IIS应用池身份(关键)
WCF-WebHttp接收位置的运行身份由IIS应用池决定,你需要先确认并修改这个身份:
- 打开IIS管理器,定位到你的WCF服务所在的应用池(通常是BizTalk隔离宿主对应的应用池,比如默认的
BizTalkServerIsolatedHost); - 右键应用池 → 高级设置 → 找到「进程模型」下的「标识」;
- 如果当前用的是
ApplicationPoolIdentity或Network Service,这类账户会以机器账户(DOMAIN\MACHINE$)的身份访问SQL,你需要给这个机器账户添加SQL权限; - 更推荐的方式是改用专属域服务账户(比如
QUBIZ\BizTalkIsolatedSvc),这个账户需要提前被加入BizTalk Server Administrators组,并且拥有SQL访问权限。
- 如果当前用的是
2. 配置SQL Server的登录与数据库权限
给应用池账户添加SQL的访问权限:
- 打开SQL Server Management Studio,连接到目标SQL实例;
- 展开「安全性」→「登录名」,右键选择新建登录名;
- 在「常规」标签页,输入应用池的账户(比如
QUBIZ\LPT16$或你新建的域服务账户); - 切换到「用户映射」标签页,勾选BizTalk核心数据库并分配角色:
BizTalkMgmtDb:分配db_owner或BizTalk Server Administrators角色;BizTalkMsgBoxDb:分配db_owner或BizTalk MessageBox Users角色;- 如果用到规则引擎或其他BizTalk组件,同步勾选对应数据库并分配权限;
- 点击确定保存配置。
3. 验证BizTalk隔离宿主配置
确保BizTalk的隔离宿主与应用池身份匹配:
- 打开BizTalk管理控制台,展开「平台设置」→「宿主」;
- 找到对应的隔离宿主(比如
BizTalkServerIsolatedHost),右键属性→「宿主」标签页; - 确认「服务账户」是你配置的域服务账户(如果更换了的话),且该账户已被加入BizTalk的相关权限组。
4. 检查WCF-WebHttp接收位置安全设置
最后确认接收位置的安全配置没有冲突:
- 在BizTalk管理控制台,找到你的WCF-WebHttp接收位置,右键属性;
- 切换到「安全」标签页:
- 如果启用了客户端身份验证,确保配置方式不会导致身份传递异常;
- 确认「服务身份验证」设置与应用池身份兼容(比如Windows身份验证模式下,应用池账户需要有对应的权限)。
配置完成后,重启IIS应用池和BizTalk相关服务,再发起请求验证问题是否解决。
内容的提问来源于stack exchange,提问作者Corovei Andrei
相关产品推荐
相关产品推荐

