我正在尝试使用WCF Web服务引用使用SOAP Web服务。
我已经能够使用System.Web.Servicees Web服务引用成功使用.NET 4.8 Framework项目中的SOAP Web服务。但是,我需要使用.NET核心项目中的Web服务。从WSDL生成的WCF类与.NET Framework Web服务不同。现在似乎必须使用生成的WebServiceClient才能与Web服务交互。
我认为Web服务需要基本身份验证,因为我能够在.NET框架项目中使用基本身份验证进行身份验证。
以下是我尝试执行Web服务的某个方法时收到的错误消息。
System.ServiceModel.Security.MessageSecurityException
HResult=0x80131500
Message=The HTTP request is unauthorized with client authentication scheme 'Anonymous'. The authentication header received from the server was ''.
Source=System.Private.ServiceModel
下面是示例化客户端并调用方法的代码
var callContext = new CAdxCallContext();
callContext.codeLang = "ENG";
callContext.poolAlias = "BGRTEST";
callContext.requestConfig = "adxwss.trace.on=on&adxwss.trace.size=16384&adonix.trace.on=on&adonix.trace.level=3&adonix.trace.size=8";
var proxy = new CAdxWebServiceXmlCCClient();
proxy.ClientCredentials.UserName.UserName = "username";
proxy.ClientCredentials.UserName.Password = "password";
string _InputXml = "<PARAM>" +
"<GRP ID= \"GRP1\">" +
"<FLD NAME = \"ITMREF\">" + 100001 + "</FLD>" +
"</GRP>" +
"</PARAM>";
try
{
var response = proxy.run(callContext, "BGR_SIEPRO", _InputXml);
}
finally
{
proxy.Close();
}
我的WCF服务连接:WCF Connected Service Screenshot
自动生成的WCF WebServiceClient:https://github.com/abiddle-bgr/Test/blob/main/CAdxWebServiceXmlCCClient.cs
2条答案
按热度按时间sc4hvdpw1#
是否设置了安全传输模式?类似于:WCF客户端中基本身份验证
在代码中,将代理类设置为允许模拟
您可以查看this post。
hm2xizp92#
最后我不得不通过创建一个自定义端点并将其作为自定义端点行为添加到代理中来手动注入标头。