NET调用JAVA的WSDL



————————————————————————————————————————————————————————
关于NET调用WSDL出现的错误解决办法
1,使用服务器引用http://xxxxx:50000/dir/wsdl
之后New对应的方法Client的时候 出现
无法加载协定为“IBMService.SI_MATERIAL_SYNC_OUT”的终结点配置部分。
主要原因配置文件加载了多次
请保持下面状态就好。


2没有终结点在侦听可以接受消息的......这通常是由于不正确的地址或者 SOAP 操作导致的
这个错误是由于自动生成的endpoint 的address自动带上了域名(这个域名的算法不确定),如上
他会生成 address="http://xxxxx:5000/xxx"

这个问题如果wsdl是联网的情况下 没问题,他会自动解析域名,如果是内网访问的话 的设置成ip形式
比如:http://192.2.2.2:5555/这样


3 HTTP 请求未经客户端身份验证方案“Anonymous”授权。从服务器收到的身份验证标头为“Basic realm="XISOAPApps"”。
解决办法
http://www.cnblogs.com/geqinggao/p/3270499.html

主要操作:选择引用->添加服务引用->高级->添加Web引用

4 "请求因 HTTP 状态 401 失败: Unauthorized。"
解决办法

开始学习WebServer,客户端调用时,提示 "请求因 HTTP 状态 401 失败: Unauthorized。"
查看相关文档,找到两种解决方法
1.右击 - 虚拟目录 - 属性 - 目录安全性 - 编辑 打开对话框后,勾选"启用匿名访问"
2.在WebServer实例化调用前加 "字段名..Credentials = System.Net.CredentialCache.DefaultCredentials;"
例如:
WEB1.Service ws1 = new WebServer_Test.WEB1.Service();
ws1.Credentials = System.Net.CredentialCache.DefaultCredentials;
textBox1.Text = ws1.HelloWorld();

另,以下引用 Mood 朋友的一段话
调用WS的时候,在IIS上有验证设置的,一般设置的是basic验证或者Windows集成验证,这就是说,你要访问这个WS,必须提供一个有权限调用的windows身份,这个时候,如果你的当前调用WS的运行帐号存在于对方系统中,并且密码一样,那么,你的那句ws.Credentials=CredentialCache.DefaultCredentials;就有用,否则,你应该如此写:ws.Credentials = new NetworkCredential(userid,password,domainname),当然如果对方的WS使用了匿名验证,你当前就可以不用写ws.Credentials=....这行代码了。 
 





——————————————————————————————————————————————————————————

1,具体使用
如果所给的wsdl不存在授权问题 就直接使用常规的添加引用就可以了
然后使用代码如下




2如果调用的WSDL需要账号密码的话用下面这种模式
选择引用->添加服务引用->高级->添加Web引用
代码:







发布了230 篇原创文章 · 获赞 184 · 访问量 35万+
展开阅读全文

没有更多推荐了,返回首页

©️2019 CSDN 皮肤主题: 大白 设计师: CSDN官方博客

分享到微信朋友圈

×

扫一扫,手机浏览