如何更改.NET WSDL以使其与SAP兼容?
我正在尝试使用SAP上.NET环境中的Web服务。 但是,当我尝试在SAP SOAMANAGER中创建逻辑端口时,出现了以下错误: SRT框架Ausnahme:初始值设定项Wert中的“消费者上下文表” 从Klasse创建上下文的方法 CL_SRT_WSP_配置_注册表 WSDL分析器显示2个不受支持的元素:如何更改.NET WSDL以使其与SAP兼容?,.net,web-services,wcf,wsdl,sap,.net,Web Services,Wcf,Wsdl,Sap,我正在尝试使用SAP上.NET环境中的Web服务。 但是,当我尝试在SAP SOAMANAGER中创建逻辑端口时,出现了以下错误: SRT框架Ausnahme:初始值设定项Wert中的“消费者上下文表” 从Klasse创建上下文的方法 CL_SRT_WSP_配置_注册表 WSDL分析器显示2个不受支持的元素: <http:BasicAuthentication xmlns:http="http://schemas.microsoft.com/ws/06/2004/policy/http"
<http:BasicAuthentication xmlns:http="http://schemas.microsoft.com/ws/06/2004/policy/http" xmlns:wsdl="http://schemas.xmlsoap.org/wsdl/" xmlns:wsap="http://schemas.xmlsoap.org/ws/2004/08/addressing/policy" xmlns:wsa10="http://www.w3.org/2005/08/addressing" xmlns:tns="http://tempuri.org/" xmlns:msc="http://schemas.microsoft.com/ws/2005/12/wsdl/contract" xmlns:soapenc="http://schemas.xmlsoap.org/soap/encoding/" xmlns:wsx="http://schemas.xmlsoap.org/ws/2004/09/mex" xmlns:soap="http://schemas.xmlsoap.org/wsdl/soap/" xmlns:wsam="http://www.w3.org/2007/05/addressing/metadata" xmlns:wsa="http://schemas.xmlsoap.org/ws/2004/08/addressing" xmlns:wsp="http://schemas.xmlsoap.org/ws/2004/09/policy" xmlns:wsaw="http://www.w3.org/2006/05/addressing/wsdl" xmlns:soap12="http://schemas.xmlsoap.org/wsdl/soap12/" xmlns:wsu="http://docs.oasis-open.org/wss/2004/01/oasis-200401-wss-wssecurity-utility-1.0.xsd" xmlns:xsd="http://www.w3.org/2001/XMLSchema"/>
及
因此,我详细查看了WSDL文件,并删除了wsp:All标记的内容,即:
<http:BasicAuthentication xmlns:http="http://schemas.microsoft.com/ws/06/2004/policy/http"/>
<sp:TransportBinding xmlns:sp="http://schemas.xmlsoap.org/ws/2005/07/securitypolicy">
<wsp:Policy>
<sp:TransportToken>
<wsp:Policy>
<sp:HttpsToken RequireClientCertificate="false"/>
</wsp:Policy>
</sp:TransportToken>
<sp:AlgorithmSuite>
<wsp:Policy>
<sp:Basic256/>
</wsp:Policy>
</sp:AlgorithmSuite>
<sp:Layout>
<wsp:Policy>
<sp:Strict/>
</wsp:Policy>
</sp:Layout>
</wsp:Policy>
</sp:TransportBinding>
从编辑的脱机WDSL文件创建逻辑端口现在可以正常工作了!所以我想,问题的根源在于基本身份验证和TransportBinding标签的设计
当然,必须调整原始外部WDSL文件
为了生成与SAP兼容的WSDL文件,我必须在.NET环境中更改什么?我必须修改web.config文件吗?ABAP web服务客户端功能支持的WSDL元素有一些限制。有一些注释记录了支持和不支持的内容:
- -ABAP代理生成支持的XML架构
- -ABAP WSDL处理中的限制和常见问题
只需在服务中使用
basicHttpBinding
。它当前使用的是wsHttpBinding
@johnsaunder,而我当前使用的是basicHttpsBinding。之所以选择此选项,是因为Web服务应该只能通过HTTPS进行通信。我是否可以使用另一个绑定,例如您建议的basicHttpBinding并通过HTTPS进行通信?@johnsaunds我在我的Web.config中将basicHttpBinding
替换为basicHttpBinding
。通过HTTPS调用WDSL文件仍然有效,但另一方面,它并没有解决我的问题。
<http:BasicAuthentication xmlns:http="http://schemas.microsoft.com/ws/06/2004/policy/http"/>
<sp:TransportBinding xmlns:sp="http://schemas.xmlsoap.org/ws/2005/07/securitypolicy">
<wsp:Policy>
<sp:TransportToken>
<wsp:Policy>
<sp:HttpsToken RequireClientCertificate="false"/>
</wsp:Policy>
</sp:TransportToken>
<sp:AlgorithmSuite>
<wsp:Policy>
<sp:Basic256/>
</wsp:Policy>
</sp:AlgorithmSuite>
<sp:Layout>
<wsp:Policy>
<sp:Strict/>
</wsp:Policy>
</sp:Layout>
</wsp:Policy>
</sp:TransportBinding>