尝试使用 .Net Core 3.1 连接 mySAP WCF 时出现问题

Posted

技术标签:

【中文标题】尝试使用 .Net Core 3.1 连接 mySAP WCF 时出现问题【英文标题】:Getting Problem when try to connect mySAP WCF using .Net Core 3.1 【发布时间】:2020-08-29 19:34:59 【问题描述】:

我正在尝试使用 WCF 客户端生成器 VS 2019 连接 MySAP SOAP 服务,但不幸的是我遇到了错误

System.Exception: 'HTTP 请求未经客户端授权 身份验证方案“匿名”。收到的认证头 从服务器是 'Basic realm="SAP NetWeaver Application Server [PXP/100]"'.'

这是我的示例代码,供您参考,我使用 .net core 3.1,我没有为此 WCF 客户端实现任何配置文件。

List<SAPReadTableService.dt_ReadTableMC_RequestFIELDS> listRequestFIELDSDetailT001W = new List<SAPReadTableService.dt_ReadTableMC_RequestFIELDS>();
                #region fields
                listRequestFIELDSDetailT001W.Add(new SAPReadTableService.dt_ReadTableMC_RequestFIELDS()  FIELDNAME = "NAME1" );
                requestDetailT001W.FIELDS = listRequestFIELDSDetailT001W.ToArray();
                #endregion

                try
                
                    SAPReadTableService.mi_osReadTableMCClient clientDetailShipmentT001W = new SAPReadTableService.mi_osReadTableMCClient();
                    #region credential
                    clientDetailShipmentT001W.ClientCredentials.UserName.UserName = "xxx";;
                    clientDetailShipmentT001W.ClientCredentials.UserName.Password = "xxx";
                    #endregion

                    SAPReadTableService.dt_ReadTableMC_Response responseDetailShipmentT001W = clientDetailShipmentT001W.mi_osReadTableMC(requestDetailT001W);
                    SAPReadTableService.dt_ReadTableMC_ResponseDATA[] dataDetailShipmentT001W = responseDetailShipmentT001W.DATA;

【问题讨论】:

【参考方案1】:

您需要在 Reference.cs 中的 GetBindingForEndpoint 中添加一些安全配置 像这样的

result.Security.Mode = System.ServiceModel.BasicHttpSecurityMode.TransportCredentialOnly;
            result.Security.Transport.ClientCredentialType = System.ServiceModel.HttpClientCredentialType.Basic;

希望这对大家有帮助.. 干杯谢谢

【讨论】:

以上是关于尝试使用 .Net Core 3.1 连接 mySAP WCF 时出现问题的主要内容,如果未能解决你的问题,请参考以下文章

连接的服务 WCF 不起作用 NET core 3.1

Wcf 服务在 .NET Core 3.1 控制台应用程序中工作,但在 ASP.NET Core 3.1 Web API 中无法工作

尝试对 ASP.NET Core 3.1 使用多个身份验证方案时出现异常

在 .Net Core 3.1 中解密 app.config 连接字符串

在 .Net Core 3.1 中使用 WCF 服务

Kestel (.NET Core 3.1) 是不是支持 md5RSA 证书?