Biztalk通过WCF WsHTTP端点获取MessageSecurityException
Biztalk 2009通过WS-BasicHTTP适配器调用常规ASP.NET Web服务时,会获得System.ServiceModel.Security.MessageSecurityException:HTTP请求未经授权,客户端身份验证方案为“匿名”。从服务器接收的身份验证标头为:“协商NTLM”Biztalk通过WCF WsHTTP端点获取MessageSecurityException,wcf,security,biztalk,Wcf,Security,Biztalk,Biztalk 2009通过WS-BasicHTTP适配器调用常规ASP.NET Web服务时,会获得System.ServiceModel.Security.MessageSecurityException:HTTP请求未经授权,客户端身份验证方案为“匿名”。从服务器接收的身份验证标头为:“协商NTLM” Web服务托管在IIS(7.5)中,禁用了匿名访问,并启用了Windows身份验证。FWIW下面是向BizTalk 2009公开的WCF basicHttpBinding的粘贴 <se
Web服务托管在IIS(7.5)中,禁用了匿名访问,并启用了Windows身份验证。FWIW下面是向BizTalk 2009公开的WCF basicHttpBinding的粘贴
<services>
<service ... >
<endpoint address=""
binding="basicHttpBinding"
bindingConfiguration="binding4BizTalk"
bindingNamespace="xxx"
... >
<!-- Delete the identity tag here -->
</endpoint>
然后在绑定下
<bindings>
<basicHttpBinding>
<binding name="binding4BizTalk" ...>
<security mode="None" />
希望有些用处?您的发送端口需要配置为使用NTLM安全性,因为这似乎是web服务所需要的 打开发送端口的配置,打开传输类型的(WCF BasicHttp)配置,然后转到安全选项卡。在那里,将安全模式设置为传输。这将允许您将传输客户端凭据类型设置为Ntlm 这将导致BizTalk使用NTLM对web服务进行身份验证。它将使用运行发送端口的BizTalk主机的帐户。如果该帐户无权访问该web服务,则您需要授予该帐户访问权限,或者考虑其他方法,例如从NTLM切换到Basic(允许您在同一安全选项卡下指定凭据)。有关此问题的讨论如下
当然,您确实提到您为Windows身份验证配置了web服务,因此您也可以尝试将传输客户端凭据类型设置为Windows。不过,这应该仍然使用BizTalk主机进程的帐户,就像NTLM一样。抱歉,但我在我的原始帖子中对其进行了一些编辑。该web服务是一个常规的ASP.NET web服务使用IIS.Biztalk 2009和ESB中托管的服务,使用静态解析器并将其设置为wcf basicHTTP传输。。。