将代理设置设置为“使用自动配置脚本”的WCF客户端

时间:2011-04-28 08:09:15

标签: c# wcf wcf-binding

我目前正在开发一个需要与互联网上的网络服务进行通信的应用程序。 Internet Explorer直到知道通过代理服务器连接到Internet的唯一应用程序。

代理设置设置为“使用自动配置脚本”。

我保留了默认设置

<binding useDefaultWebProxy="true" />

另外设置

<security mode="TransportCredentialOnly">
        <transport clientCredentialType="Windows" proxyCredentialType="Basic"
          realm="" />
        <message clientCredentialType="UserName" algorithmSuite="Default" />
</security>

但没有运气。我一直在“(407)需要代理身份验证。”

我做了一些谷歌,但解决方案似乎不适合我的情况。

简短更新: 应用程序应使用默认用户凭据运行,并使用这些凭据 通过NTLM与代理进行身份验证。但即使我设置客户端这样做似乎没有帮助。

3 个答案:

答案 0 :(得分:8)

保持<binding useDefaultWebProxy="true" />设置,并确保app.config文件中的useDefaultCredentials设置为true(默认情况下此设置为false):

<system.net>
    <defaultProxy useDefaultCredentials="true"/>
</system.net>

有关详细信息,请参阅我的博文“Using HTTP Proxy Servers”。

答案 1 :(得分:1)

我不能给你任何背景知识,但设置:

<binding useDefaultWebProxy="false" />

在获取确切错误时,在我当前的环境中为我工作。 Windows中的每个人似乎都使用IE配置的互联网设置,其中包括默认代理。 Internet Explorer在运行时可以很好地解决这个问题,但如果您尝试使用Firefox检索服务wsdl,我猜你最终会有用户登录提示。

在任何情况下,请尝试假默认代理。

答案 2 :(得分:0)

请记住,kerberos身份验证在不同防火墙之间无法正常运行。许多组织已设置其代理以使用AD进行身份验证,并且只允许代理访问Internet站点。此设置不适用于Web服务,我怀疑这是您的问题。