首页 > 解决方案 > .net core 2.1 中的 SAP WS WCF 客户端消耗错误 405

问题描述

我正在尝试使用需要身份验证的 SAP 的 Web 服务。我成功添加了网络服务。但是,当我想使用它(httpGet)时,它给了我错误 405 Method Not Allowed

我尝试使用另一个具有身份验证的 Web 服务,它工作正常。

我尝试在 SOAP UI 中使用当前的 Web 服务,它工作得非常好。

我尝试使用带有 httpBinding 的工厂BasicHttpSecurityMode.TransportCredentialOnly and myBinding.Security.Transport.ClientCredentialType = HttpClientCredentialType.Basic;

我与服务提供商重新检查了 Uri,它是正确的。

我检查了 Windows 功能:

ProtocolException:远程服务器返回了意外响应:(405)方法不允许。

标签: c#.netwcfasp.net-coresoap

解决方案


在大多数情况下,您调用服务的方式是标准的 SOAP 调用,即以下基于 HTTP-POST 而非 HTTP-GET 的请求。

var x = await _serviceClient.ServiceFunctionAsync(i);


当我想使用它(httpGet)时,它给了我错误 405 Method Not Allowed

您如何定义服务合同?我的意思是发布的服务可能会使用 webhttpbinding 来创建一个 Restful 风格的服务。在这种情况下,如果我们想通过客户端代理类调用服务,我们需要在自动生成的服务端点中添加Webhttp端点行为。另外,将 [webget] 添加到操作合同中。请参考我的演示。
WCF:没有可以接受消息的端点监听
简单来说,使用客户端代理调用服务时,我们应该确保客户端和服务器之间的绑定是一致的。
请与我们分享服务器绑定详细信息,以便我可以重现您的问题并准确定位问题。
如果问题仍然存在,请随时告诉我。


推荐阅读