通过代理服务器的 WCF 可靠会话 - 在 Windows XP 上不发送身份验证凭据
我有一个完全信任的 XBAP,它使用下面附加的端点配置使用可靠的会话连接到远程服务。问题是,当在客户端的组织代理服务器后面运行应用程序时,WCF 请求在 Windows XP 上被阻止,但在 Windows 7 上则可以正常通过。我的怀疑(有待客户端进一步分析)是:尽管 useDefaultWebProxy=true 设置,但默认代理凭据不会附加到 XP 计算机上的 HTTP 或 HTTPS 请求。
这是 XP 上的已知问题,还是我遗漏了什么?有没有办法绕过这个问题?
预先感谢您的任何帮助
安全(生产)版本的绑定配置:
<customBinding>
<binding name="Https_IOltpLogic">
<reliableSession ordered="False" inactivityTimeout="00:20:00" />
<httpsTransport />
</binding>
</customBinding>
对于演示(不安全)版本:(
<wsHttpBinding>
<binding name="WSHttpBinding_IOltpLogic"
allowCookies="false"
bypassProxyOnLocal="false"
hostNameComparisonMode="StrongWildcard"
messageEncoding="Text"
textEncoding="utf-8"
useDefaultWebProxy="true">
<reliableSession enabled="True" ordered="False" inactivityTimeout="00:20:00" />
<security mode="None" />
</binding>
</wsHttpBinding>
请注意,它们在所描述的条件下都不起作用!)
I have a full trust XBAP which connects using reliable sessions to a remote service using the endpoint configuration attached below. The catch is that when running the application behind a client's organizational proxy server, the WCF requests are blocked on Windows XP but pass through fine on Windows 7. My suspicion (pending further analysis by the client) is that the default proxy credentials are not attached to the HTTP or HTTPS requests on the XP machines, despite the useDefaultWebProxy=true setting.
Is this a known issue on XP, or am I missing something? Is there a way to bypass this issue?
Thanks in advance for any help
Binding configuration for the secure (production) version:
<customBinding>
<binding name="Https_IOltpLogic">
<reliableSession ordered="False" inactivityTimeout="00:20:00" />
<httpsTransport />
</binding>
</customBinding>
For the demo (unsecured) version:
<wsHttpBinding>
<binding name="WSHttpBinding_IOltpLogic"
allowCookies="false"
bypassProxyOnLocal="false"
hostNameComparisonMode="StrongWildcard"
messageEncoding="Text"
textEncoding="utf-8"
useDefaultWebProxy="true">
<reliableSession enabled="True" ordered="False" inactivityTimeout="00:20:00" />
<security mode="None" />
</binding>
</wsHttpBinding>
(Please note that neither of them work under the described conditions!)
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(1)
好吧,在客户端的网络管理员摆弄代理服务器设置后,它自行解决了...由于我不允许分析 HTTP 流量,所以我真的不知道哪些标头丢失/修改,导致 WCF 请求被被阻止,而普通浏览器请求通过。
Well, it worked itself out after the client's network admin fiddled with the proxy server settings... since I wasn't allowed to analyze the HTTP traffic I don't really know which headers were missing/modified that caused the WCF requests to be blocked and the normal browser requests to pass though.