java调用.net的wcf数据量太大

lovepp2004 2010-07-14 09:09:58
我在java客户端调用.net的wcf服务,用的是asix生成的代理类,发现返回string的最大值只能是65535/2,如果再大,就接收不了了。但是在.net的客户端是可以正常接收的。这个如何解决呢?换成webservice能解决这个问题吗?如何配置呢?
...全文
310 12 打赏 收藏 转发到动态 举报
AI 作业
写回复
用AI写文章
12 条回复
切换为时间正序
请发表友善的回复…
发表回复
Sunpire 2010-07-17
  • 打赏
  • 举报
回复
[Quote=引用 11 楼 hzzasdf 的回复:]
引用 6 楼 marguess 的回复:
你没用过就不要瞎说,如果你能用java调用wsHttpBinding的wcf,我就拜你为师好了。
web service有很多形式,最初的asmx,基本上所有系统都支持,至于微软加的soap extension,到后来支……
[/Quote]

以 ws 开头的 binding 都是微软自己的, java 客户端不能使用 ws 开头的binding 这可以理解,但是 java 客户端应是可以使用 custombinding 来代替的。
  • 打赏
  • 举报
回复
[Quote=引用 6 楼 marguess 的回复:]
楼上的不知道,不要瞎说行不行。WCF是微软的技术,但是WCF是web service是可以提供给所有的同构或者异构系统调用的。
[/Quote]
你没用过就不要瞎说,如果你能用java调用wsHttpBinding的wcf,我就拜你为师好了。
web service有很多形式,最初的asmx,基本上所有系统都支持,至于微软加的soap extension,到后来支持认证的wse,再到微软整合各种协议的wcf,就不一定所有的语言都支持了。
至于你说的什么修改返回类型的说法,明显是不了解wcf的配置。
MarcuseXiao 2010-07-16
  • 打赏
  • 举报
回复
WCF几乎支持所有的网络通信协议,而且支持SOAP和REST方式的web service.
MarcuseXiao 2010-07-16
  • 打赏
  • 举报
回复
楼上的不知道,不要瞎说行不行。WCF是微软的技术,但是WCF是web service是可以提供给所有的同构或者异构系统调用的。
  • 打赏
  • 举报
回复
wcf是微软特有的技术,除非配置成basicHttpBinding(等于是退化成了老的asmx),不然java不认识,超过了quota好像也无法直接配置,还是改回原来的asmx吧。

我只知道有一种方法可以解决这个问题,用到一个叫做Managed Service Engine的工具,在codeplex.com网站可以免费下载,它是类似proxy的东西,通过它来访问wcf,可以在它的界面里配置最大字节数等。
MarcuseXiao 2010-07-16
  • 打赏
  • 举报
回复
不管是用什么技术,string总是有长度了限制的。你应该是修改返回数据类型。
MarcuseXiao 2010-07-16
  • 打赏
  • 举报
回复
[Quote=引用 8 楼 isline 的回复:]
换成webservice吧,即使用basicHttpBinding也不一定能解决
[/Quote]
WCF不是Web Service?
  • 打赏
  • 举报
回复
换成webservice吧,即使用basicHttpBinding也不一定能解决
wjn161 2010-07-15
  • 打赏
  • 举报
回复
Server端
Web config里面可以修改最大长度

<bindings>
<wsHttpBinding>
<binding name="wsHttpBindingConfiguration" maxReceivedMessageSize="20971510">
<readerQuotas maxStringContentLength="20971520" maxArrayLength="20971520"/>
<security mode="None" />
</binding>
</wsHttpBinding>
</bindings>


客户端好像也需要修改(.net调用的。java不知道啊)

<binding name="WSHttpBinding_ISudentContract" closeTimeout="00:01:00"
openTimeout="00:01:00" receiveTimeout="00:10:00" sendTimeout="00:01:00"
bypassProxyOnLocal="false" transactionFlow="false" hostNameComparisonMode="StrongWildcard"
maxBufferPoolSize="524288" maxReceivedMessageSize="65536"
messageEncoding="Text" textEncoding="utf-8" useDefaultWebProxy="true"
allowCookies="false">
...
Sunpire 2010-07-15
  • 打赏
  • 举报
回复
支持3楼,最大值是 2147483647 (2GB),在兼容ASP.NET的情况下默认最大值是 4MB
mayonglong 2010-07-14
  • 打赏
  • 举报
回复
[Quote=引用楼主 lovepp2004 的回复:]
我在java客户端调用.net的wcf服务,用的是asix生成的代理类,发现返回string的最大值只能是65535/2,如果再大,就接收不了了。但是在.net的客户端是可以正常接收的。这个如何解决呢?换成webservice能解决这个问题吗?如何配置呢?
[/Quote]

最大值可以配置的吧~
lovepp2004 2010-07-14
  • 打赏
  • 举报
回复
在线等啊。急啊

12,165

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术 Web Services
社区管理员
  • Web Services社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

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