从.NET代码调用Java Web服务时出错?

时间:2009-11-24 10:10:14

标签: c# java .net web-services

我在调用Java Web服务的代码中遇到错误。代码在我团队的其他PC上运行良好。我有完全相同的源代码副本。所以我猜我的电脑上的配置问题深埋在某处并且与源代码本身无关?

我得到的错误是:

  

使用客户端身份验证方案“匿名”

禁止HTTP请求

以下是web.config中的2个配置部分。

<binding
  name="SEITokenServiceBinding"
  closeTimeout="00:01:00"
  openTimeout="00:01:00"
  receiveTimeout="00:10:00"
  sendTimeout="00:01:00"
  allowCookies="false"
  bypassProxyOnLocal="false"
  hostNameComparisonMode="StrongWildcard"
  maxBufferSize="65536"
  maxBufferPoolSize="524288"
  maxReceivedMessageSize="65536"
  messageEncoding="Text"
  textEncoding="utf-8"
  transferMode="Buffered"
  useDefaultWebProxy="true">
  <readerQuotas
    maxDepth="32"
    maxStringContentLength="8192"
    maxArrayLength="16384"
    maxBytesPerRead="4096"
    maxNameTableCharCount="16384" />
  <security
    mode="None"/>
</binding>
<client>
    <endpoint
      address="http://10.1.1.1:8180/tokenService"
      binding="basicHttpBinding"
      bindingConfiguration="SEITokenServiceBinding"
      contract="TokenService.SEITokenService"
      name="SEITokenServicePort">
      <identity></identity>
    </endpoint>
</client>

3 个答案:

答案 0 :(得分:0)

我之前在工作场所见过这个问题。对你来说可能完全不同,但我会分享我的经历。

在我的场景中,它是将一个不同的组策略应用于其中一个开发PC,而不是应用于所有其他开发PC,这导致当前用户凭据未被传递到内部代理服务器。 / p>

我建议尝试在web.config中明确设置服务的标识(可能是您自己的用户标识),看看是否能解决问题。

然而,这只是一个临时解决方案,您需要发现组策略的不同之处并对其进行修改,以使登台/开发系统完全相同。

答案 1 :(得分:0)

不知道答案,但调试它的好方法是在您的计算机上运行调试http代理,如Fiddler。抓住http对话并将其与同事的计算机的输出区分开来。

答案 2 :(得分:0)

这是由于java Web服务服务器上的IP子网限制。