【问题标题】:WCF client with proxy settings set to "Use automatic configuration script"代理设置设置为“使用自动配置脚本”的 WCF 客户端
【发布时间】:2011-08-14 12:11:01
【问题描述】:

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

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

我保留了默认设置

<binding useDefaultWebProxy="true" />

另外设置

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

但没有运气。我不断收到“(407)需要代理身份验证。”

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

简短更新: 应用程序应使用默认用户凭据运行,并使用这些凭据 通过 NTLM 向代理进行身份验证。但即使我让客户端这样做,它似乎也无济于事。

【问题讨论】:

  • 您确定需要通过基本身份验证将凭据发送到代理吗?这将要求您在代理的客户端凭据中设置用户名和密码。
  • 好点。立即将其更改为Windows。但我认为这意味着它会自动使用默认凭据。
  • 这个答案有帮助吗? stackoverflow.com/questions/289601/…
  • 您是否尝试以编程方式将 proxy.useDefaultCredentials 设置为 true?

标签: c# wcf wcf-binding


【解决方案1】:

保留&lt;binding useDefaultWebProxy="true" /&gt; 设置,并确保在您的app.config 文件中将useDefaultCredentials 设置为true(此设置默认为false):

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

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

【讨论】:

    【解决方案2】:

    除了设置之外,我无法为您提供任何背景信息:

    <binding useDefaultWebProxy="false" />
    

    当你得到你的确切错误时,在我当前的环境中为我工作。 Windows 中的 Everyting 似乎使用 IE 可配置的 Internet 设置,其中包括默认代理。 Internet Explorer 在运行时巧妙地为您解决了这个问题,但如果您尝试使用 Firefox 检索服务 wsdl 左右,我猜您最终会收到用户登录提示。

    在任何情况下,尝试将默认代理设为假。

    【讨论】:

    • 阅读 WCF 文档时,将其设置为 false 将使用用户级别的设置。但是这个我之前试过,并没有解决我的问题。
    • 好的,这就解释了为什么它对我有用。太糟糕了,它没有帮助。
    【解决方案3】:

    请记住,kerberos 身份验证不能很好地跨不同的防火墙。许多组织已设置代理以使用 AD 进行身份验证,并且只允许代理访问 Internet 站点。此设置不适用于 Web 服务,我怀疑这是您的问题。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2015-05-23
      • 2013-01-17
      • 2013-01-22
      • 2012-05-12
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多