调用Java写的WebService总超时

dianjixue1 2015-01-23 10:53:50
客户端(WPF)调用Java的WebService,总发生超时异常
--------------------------------------------------------------------------------
请求通道在 00:01:00 以后尝试发送超时。增加传递给请求调用的超时值,或者增加绑定上的 SendTimeout 值。分配给此操作的时间可能已经是更长超时的一部分。,
Server stack trace:
在 System.ServiceModel.Channels.RequestChannel.Request(Message message, TimeSpan timeout)
在 System.ServiceModel.Dispatcher.RequestChannelBinder.Request(Message message, TimeSpan timeout)
在 System.ServiceModel.Channels.ServiceChannel.Call(String action, Boolean oneway, ProxyOperationRuntime operation, Object[] ins, Object[] outs, TimeSpan timeout)
在 System.ServiceModel.Channels.ServiceChannelProxy.InvokeService(IMethodCallMessage methodCall, ProxyOperationRuntime operation)
在 System.ServiceModel.Channels.ServiceChannelProxy.Invoke(IMessage message)


app.config已按照网络要求配置

<binding name="XXX" closeTimeout="00:01:00"
openTimeout="00:01:00" receiveTimeout="00:10:00" sendTimeout="00:01:00"
allowCookies="false" bypassProxyOnLocal="false" hostNameComparisonMode="StrongWildcard"
maxBufferSize="2147483647" maxBufferPoolSize="2147483647" maxReceivedMessageSize="2147483647"
messageEncoding="Text" textEncoding="utf-8" transferMode="Buffered"
useDefaultWebProxy="true">
<readerQuotas maxDepth="32" maxStringContentLength="8192" maxArrayLength="16384"
maxBytesPerRead="4096" maxNameTableCharCount="16384" />
<security mode="None">
<transport clientCredentialType="None" proxyCredentialType="None"
realm="" />
<message clientCredentialType="UserName" algorithmSuite="Default" />
</security>
</binding>


之所以只配置了"00:01:00",那是因为时间长了发生超时时客户端延时等待更 严重 。有什么好办法解决?
...全文
434 8 打赏 收藏 转发到动态 举报
AI 作业
写回复
用AI写文章
8 条回复
切换为时间正序
请发表友善的回复…
发表回复
江南小鱼 2015-01-25
  • 打赏
  • 举报
回复
先抛开没用的,拿java的webservice生成一个代理类,随便写个控制台程序,调用webservice看能不能用?!
SPFarmer 2015-01-24
  • 打赏
  • 举报
回复
需要首先验证这个web service是不是可用的。 方法就是,让写java那个人,写一段java代码调用这个web service,看看是不是好用。如果不好用,那就是web service的问题。如果好用,你在查是不是得你代码有问题。
zixingcheng_ 2015-01-23
  • 打赏
  • 举报
回复
5级的高手,会犯这种低级问题?急晕了?!!
於黾 2015-01-23
  • 打赏
  • 举报
回复
引用 4 楼 dianjixue1 的回复:
Java的WebService 是别人的,我这里只有地址和调用参数 发生异常的方法也没什么业务,就一个验证用户名密码的登录
那就把做WebService的人拽来,告诉他,你这玩意不能用,登录也要等1分钟,还超时
dianjixue1 2015-01-23
  • 打赏
  • 举报
回复
Java的WebService 是别人的,我这里只有地址和调用参数 发生异常的方法也没什么业务,就一个验证用户名密码的登录
zixingcheng_ 2015-01-23
  • 打赏
  • 举报
回复
WebService 调用后是有系列时间限制,比如数据发送、接收时间、服务结果等待时间等,再编写服务和调用时都应该注意。 这里的应该是等待服务结果的时间过短,超时所致。先检查、调试服务耗时,按理你能预计下多久的耗时的,不行就仔细调试吧,如果程序的确需要这么久的运行时间,就改配置里的receiveTimeout="00:10:00",你这都10分钟了!。。 真要太久,还是考虑异步调用吧,就这么多。
於黾 2015-01-23
  • 打赏
  • 举报
回复
我能猜到的bug: 1.程序陷入死循环了 2.访问数据库数据量过大,进入阻塞了 3.线程出现错误,崩溃了
於黾 2015-01-23
  • 打赏
  • 举报
回复
你的WebService没响应了呗,谁知道它在忙什么 你不调试,而靠瞎猜?

111,092

社区成员

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

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

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