web service

写个昵称都这么麻烦 2015-07-01 03:13:56
使用VS添加服务引用生成代理服务类后

客户端调用该服务的方法时报错

SOAP 版本可能不匹配: 出现意外的 Envelope 命名空间 http://schemas.xmlsoap.org/wsdl/。应为 http://schemas.xmlsoap.org/soap/envelope/。

该服务是SAP发布的webservice

添加
System.Net.NetworkCredential User = new System.Net.NetworkCredential("user","pwd");
通过权限认证后登录了、但是就是调用不了、出现了上面的错误

不用回答说什么把?wsdl去掉了、这个我试过了、高分求解决方案
...全文
219 10 打赏 收藏 转发到动态 举报
AI 作业
写回复
用AI写文章
10 条回复
切换为时间正序
请发表友善的回复…
发表回复
江南小鱼 2015-07-04
  • 打赏
  • 举报
回复
这个wsdl是基于SOAP/1.1,使用visual studio命令行工具不能生成代理类 1、采用8#的办法 2、让webservice基于SOAP/1.1以上版本,就能生成代理类
  • 打赏
  • 举报
回复
引用 8 楼 starfd 的回复:
你直接用WebRequest通过POST方式将整个报文传递给WS吧 http://blog.sina.com.cn/s/blog_5421dfd20100g0ba.html
谢谢、这方式是可行的、不过不适合我的实际应用 现在问题解决了 将服务再封装一次、使它支持soap1.2就没这个问题了
  • 打赏
  • 举报
回复
你直接用WebRequest通过POST方式将整个报文传递给WS吧 http://blog.sina.com.cn/s/blog_5421dfd20100g0ba.html
  • 打赏
  • 举报
回复
SAP发布服务的时候默认使用soap1.1(服务端那边只支持soap1.1没有1.2) 而我去调用服务的时候发送的报文是soap1.2 我怎么才能在客户端使用soap1.1而不是使用默认的soap1.2?
  • 打赏
  • 举报
回复
引用 3 楼 dongxinxi 的回复:
这种问题一般出现在java写的web service VS服务引用,默认以WCF架构配置的,默认是soap1.2的 不过你可以通过自定义绑定方式来修改 messageVersion="Soap11"

<system.serviceModel>
    <bindings>
      <customBinding>
        <binding name="xxxBinding">
          <textMessageEncoding maxReadPoolSize="64" maxWritePoolSize="16" messageVersion="Soap11" writeEncoding="utf-8">
            <readerQuotas maxDepth="32" maxStringContentLength="8192" maxArrayLength="16384" maxBytesPerRead="4096" maxNameTableCharCount="16384" />
          </textMessageEncoding>
          <httpTransport 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">
          </httpTransport>
        </binding>        
      </customBinding>
    </bindings>
    <client>
      <endpoint address="http://www.xxx.com/..." binding="customBinding" bindingConfiguration="xxxBinding" contract="XXXService" name="XXX" />      
    </client>
  </system.serviceModel>
另外你也可以试试添加Web引用(添加服务引用 > 高级 > 添加Web引用)来调用看看
05没有高级
  • 打赏
  • 举报
回复
先看清楚问题谢谢、web服务本身就不是我自己写的、我只有服务访问地址
  • 打赏
  • 举报
回复
客户端怎么调用的?不会如3L所说直接服务引用,以WCF的方式添加引用了吧 wsdl工具指令类似下面的,要在VS的开发人员命令提示 里面执行,结果会生成一个cs文件,只需要手工将构造函数里面的链接改下就可以了
wsdl /out:D://WSDL/SF.cs  http://219.134.187.154:9154/bsp-wms/ws/OutsideToLscmServiceImpl?wsdl
  • 打赏
  • 举报
回复
这种问题一般出现在java写的web service VS服务引用,默认以WCF架构配置的,默认是soap1.2的 不过你可以通过自定义绑定方式来修改 messageVersion="Soap11"

<system.serviceModel>
    <bindings>
      <customBinding>
        <binding name="xxxBinding">
          <textMessageEncoding maxReadPoolSize="64" maxWritePoolSize="16" messageVersion="Soap11" writeEncoding="utf-8">
            <readerQuotas maxDepth="32" maxStringContentLength="8192" maxArrayLength="16384" maxBytesPerRead="4096" maxNameTableCharCount="16384" />
          </textMessageEncoding>
          <httpTransport 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">
          </httpTransport>
        </binding>        
      </customBinding>
    </bindings>
    <client>
      <endpoint address="http://www.xxx.com/..." binding="customBinding" bindingConfiguration="xxxBinding" contract="XXXService" name="XXX" />      
    </client>
  </system.serviceModel>
另外你也可以试试添加Web引用(添加服务引用 > 高级 > 添加Web引用)来调用看看
  • 打赏
  • 举报
回复
引用 1 楼 mjp1234airen4385 的回复:
利用dotnet自带的工具生成webservice代理类的时候,有个高级设置,还是高级选项来着,你面还有一种生成代理类的方法,是dotnet2005一下版本使用,你试试这个,生成的代理类在使用效果上没有差别。
我用的是05、没有你说的那个高级选项、还有别的方式嚒
mjp1234airen4385 2015-07-01
  • 打赏
  • 举报
回复
利用dotnet自带的工具生成webservice代理类的时候,有个高级设置,还是高级选项来着,你面还有一种生成代理类的方法,是dotnet2005一下版本使用,你试试这个,生成的代理类在使用效果上没有差别。

111,092

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术 C#
社区管理员
  • C#
  • AIGC Browser
  • by_封爱
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

让您成为最强悍的C#开发者

试试用AI创作助手写篇文章吧