我正在尝试使用基于java(JAX-WS)的Web服务。我需要在WCF和Java中为它编写客户端。原因:Java客户端将作为夜间周期的一部分在Unix机器上运行,WCF客户端将成为我们现有Windows客户端应用程序的一部分。
这是一件有趣的事情: 1)Java Client能够使用数据。 2)即使perl客户端也能够使用数据。 3)WCF客户端无法使用。(即使超时时间设置为15分钟,也会在2分钟内失败,并且超时时间会一直超时)
这是更多背景知识。 Java服务最初不是基于JAX-WS的,当时所有三个客户端(JAVA,WCF,Perl)都能够使用数据。但是,只要他们转移到基于JAX-WS RI的Java Web服务,就会开始发生这种情况。
JAX-WS RI是如何使WCF客户端生活困难的。另外正如我最初提到的,即使超时设置为高达15分钟,WCF客户端现在也会在2分钟内超时。
另请注意,我在WCF客户端中使用basicHttpBinding。
<?xml version="1.0"?>
<configuration>
<system.serviceModel>
<bindings>
<basicHttpBinding>
<binding name="FIN_BookService_1_PortBinding" closeTimeout="00:05:00" openTimeout="00:15:00" receiveTimeout="00:15:00" sendTimeout="00:15:00" allowCookies="false" bypassProxyOnLocal="false" hostNameComparisonMode="StrongWildcard" maxBufferSize="65536000" maxBufferPoolSize="52428800" maxReceivedMessageSize="65536000" messageEncoding="Text" textEncoding="utf-8" transferMode="Buffered" useDefaultWebProxy="true">
<readerQuotas maxDepth="32" maxStringContentLength="819200" maxArrayLength="1638400" maxBytesPerRead="409600" maxNameTableCharCount="1638400"/>
<security mode="None">
<transport clientCredentialType="None" proxyCredentialType="None" realm=""/>
<message clientCredentialType="UserName" algorithmSuite="Default"/>
</security>
</binding>
</basicHttpBinding>
</bindings>
<client>
<endpoint address="http://*********************/FIN_BookService_1" binding="basicHttpBinding" bindingConfiguration="FIN_BookService_1_PortBinding" contract="RDH.FIN_BookService_1_PortType" name="FIN_BookService_1_Port"/>
</client>
</system.serviceModel>
<startup><supportedRuntime version="v2.0.50727"/></startup></configuration>