[英]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.