繁体   English   中英

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

[英]Error calling Java web service from .NET code?

我在调用Java Web服务的代码中遇到错误。 该代码可在我团队的其他PC上正常运行。 我有完全相同的源代码副本。 因此,我猜这是我的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>

我以前在工作场所已经看到过这个问题。 对于您来说可能完全不同,但是我会分享我的经验。

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

我建议尝试在web.config中显式设置服务的标识(也许是您自己的用户ID),看看是否可以解决问题。

但是,这只是一个临时解决方案,您需要发现组策略中的差异并进行修改,以使登台/开发系统完全相同。

不知道答案,但是调试它的一种好方法是在计算机上运行调试的HTTP代理,例如Fiddler 抓住http对话,并将其与未显示该问题的同事的计算机的输出进行比较。

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

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM