You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

无域Windows Server上Business Central On-Premise SoapUI/gSoap访问401配置咨询

无域环境下Business Central On-Premise Web服务访问配置方案

一、Business Central服务端配置

  • 启用NTLM认证:打开Business Central管理控制台,找到对应的Web服务实例,在「认证」设置中勾选NTLM选项(无域环境下本地账户依赖NTLM完成身份验证)。
  • 配置服务账户权限:运行BC Web服务的系统账户(如BCNTSvc)需具备以下权限:
    • Windows Server本地登录权限;
    • 访问IIS站点资源的权限(若使用IIS托管);
    • Business Central中对应Web服务页面/代码单元的访问权限。
  • IIS身份验证设置(若IIS托管):
    1. 打开IIS管理器,定位到BC Web服务对应的站点;
    2. 启用Windows身份验证,禁用匿名身份验证(Windows身份验证在无域环境下自动使用NTLM协议)。

二、SoapUI客户端配置

  • 设置NTLM认证信息:在请求的Auth选项卡中,选择NTLM Authentication,填入格式为服务器NetBIOS名\用户名的账号(如WIN-ABC123\myUser)及对应密码;
  • 启用预认证:在请求属性中开启Authentication Preemptive,避免先发送匿名请求触发服务器401挑战导致的认证失败;
  • 使用主机名访问:请求URL尽量使用服务器NetBIOS名或localhost(本地访问时),不要用IP地址,避免NTLM的SPN匹配问题。

三、gSoap客户端配置

  • 编译时启用NTLM支持:生成gSoap代码时添加编译参数-DWITH_NTLM,确保库包含NTLM认证功能;
  • 代码中配置认证参数:在调用Web服务前设置NTLM认证信息,示例代码如下:
struct soap *soap = soap_new();
// 用户名格式:服务器NetBIOS名\本地账户名
soap->user = "WIN-ABC123\\myUser";
soap->passwd = "MyPasswd";
soap->httpauth = SOAP_AUTH_NTLM;
soap->authrealm = NULL; // 无域环境下可设为NULL

// 调用Web服务方法(示例)
soap_call___ns1__ReadMultiple(soap, NULL, NULL, NULL, "", 0, &result);
  • 处理认证挑战:确保gSoap能正确处理服务器返回的401认证挑战,可适当调整超时参数(如soap->http_connect_timeout)避免请求中断。

四、通用检查项

  • 确认服务器本地账户myUser已在Business Central中分配对应权限:需添加Web服务权限集(如SOAP Web Services)及目标页面(如SalesOrder)的访问权限;
  • 检查防火墙设置:确保客户端与服务器之间的BC Web服务端口(如8012)未被拦截;
  • 验证账户有效性:确认本地账户myUser密码正确,且未被锁定或禁用。

内容的提问来源于stack exchange,提问作者famedoro

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.05 02:10:51