我正在尝试设置一个将由.NET应用程序使用的SAP Web Service。考虑到这很简单,我在SAP中设置了使用HTTP的服务。我右键单击.NET项目树中的“服务引用”,并选择“添加服务引用...”,输入我们服务器上本地托管的WSDL URL,并按Go,然后选择端点,然后按OK。
我打开了app.config文件,发现它显示的是<httpsTransport>
而不是<httpTransport>
,尽管我将其设置为使用HTTP。
<system.serviceModel>
<bindings>
<customBinding>
<binding name="ZHR_RECRUITNEW1">
<!--WsdlImporter encountered unrecognized policy assertions in ServiceDescription 'urn:sap-com:document:sap:soap:functions:mc-style':-->
<!-- <wsdl:binding name='ZHR_RECRUITNEW'> -->
<!-- <wsaw:UsingAddressing xmlns:wsaw="http://schemas.xmlsoap.org/ws/2004/08/addressing">..</wsaw:UsingAddressing> -->
<!-- <saptrnbnd:OptimizedXMLTransfer xmlns:saptrnbnd="http://www.sap.com/webas/710/soap/features/transportbinding/">..</saptrnbnd:OptimizedXMLTransfer> -->
<!-- <sapattahnd:Enabled xmlns:sapattahnd="http://www.sap.com/710/features/attachment/">..</sapattahnd:Enabled> -->
<textMessageEncoding maxReadPoolSize="64" maxWritePoolSize="16"
messageVersion="Soap11" writeEncoding="utf-8">
<readerQuotas maxDepth="32" maxStringContentLength="8192" maxArrayLength="16384"
maxBytesPerRead="4096" maxNameTableCharCount="16384" />
</textMessageEncoding>
<httpsTransport manualAddressing="false" maxBufferPoolSize="524288"
maxReceivedMessageSize="65536" allowCookies="false" authenticationScheme="Anonymous"
bypassProxyOnLocal="false" hostNameComparisonMode="StrongWildcard"
keepAliveEnabled="true" maxBufferSize="65536" proxyAuthenticationScheme="Anonymous"
realm="" transferMode="Buffered" unsafeConnectionNtlmAuthentication="false"
useDefaultWebProxy="true" requireClientCertificate="false" />
</binding>
</customBinding>
</bindings>
<client>
<endpoint address="http://<host>:8000/sap/bc/srt/rfc/sap/zhr_recruitnew/300/zhr_recruitnew/zhr_recruitnew"
binding="customBinding" bindingConfiguration="ZHR_RECRUITNEW1"
contract="ServiceReference2.ZHR_RECRUITNEW" name="ZHR_RECRUITNEW1" />
</client>
</system.serviceModel>
字符串
因此,为了让它“正常”工作,我必须将该xml标记从httpsTransport重命名为httpTransport,并删除属性requireClientCertificate=“false”
因此,我进入SAP设置服务以使用HTTPS,然后返回.NET项目并重新添加该服务,以获得此错误消息:
无法为具有权限“:”的SSL/TLS安全通道建立信任关系。
我很好奇配置文件中的注解“WsdlImporter遇到了无法识别的策略Assert”是否与从SAP误读的信息有关。
1条答案
按热度按时间bnlyeluc1#
无法为具有权限“:”的SSL/TLS安全通道建立信任关系。
之所以会出现这种情况,是因为服务提供商上的证书不在本地受信任的根证书中。
你可以在你的代码中(在其他任何东西之前)添加以下内容来忽略它:
字符串