WCF客户端+ Windows服务+ ISA =(407)需要代理身份验证

时间:2010-06-28 06:44:57

标签: c# vb.net wcf firewall

“不再这样了”我听到你说。是的,我知道。但这个是不同的......我想。

情景: 我有一个Windows服务(作为SYSTEM运行),它使用远程WCF服务。该机器位于ISA代理(没有域,没有代理用户名/密码)后面,我已将代理添加到我的app.config。这是:

<system.net>
  <defaultProxy useDefaultCredentials="true">
    <proxy 
        bypassonlocal="False" 
        proxyaddress="http://myproxyserver:8080"
        usesystemdefault="False" />
  </defaultProxy>
</system.net>

例外:

System.Net.WebException: 
  The remote server returned an error: (407) Proxy Authentication Required.
  at System.Net.HttpWebRequest.GetResponse()
  at System.ServiceModel.Channels.HttpChannelFactory.HttpRequestChannel. ...
     HttpChannelRequest.WaitForReply(TimeSpan timeout)

为什么会有所不同? 我已将服务更改为以管理员身份运行,并且Windows服务能够完美地访问WCF服务。不幸的是,我需要使用SYSTEM帐户,因为该服务运行一些遗留的COM +内容,这需要设置“允许服务与桌面交互”选项。 (此选项仅适用于SYSTEM帐户)

这很奇怪的另一个原因是SYSTEM应该是全能的大爸爸帐户(more here

我尝试了什么: 我已尝试thisthisthis ...以及then some

这个有点神秘。为什么我的app.config适用于管理员,而不适用于SYSTEM?

感谢您的帮助!

1 个答案:

答案 0 :(得分:0)

发现问题。原来它与帐户无关。由于超时时间很长,我并不总是立即看到这个例外,这让我觉得它与正在使用的帐户有关。

问题是useDefaultCredentials在生产网站上设置为false。失败。