2010-02-18 90 views
1

我有一个与Web服务通信的控制台应用程序。他们都在同一台机器上。连接到网络时无法访问Web服务:: HTTP 407

当我在禁用LAN的情况下访问Web服务时,它连接时没有问题。但是,如果局域网已启用并连接到我们的办公网络,则会收到此错误:

“需要HTTP 407代理验证 - ISA服务器需要授权才能完成请求,拒绝访问Web代理服务。

我们一直在寻找问题的原因三天了。我们尝试了所有我们能想到的。任何想法是什么导致这个问题?

其他说明: - 本机处于工作组设置但具有DNS后缀(computer.local)。当访问Web服务,我们键入地址为“http://machine.computer.local/service.asmx

  • 我跟IT人员,他们说,我们没有一个ISA服务器安装

  • 没有“代理“在IE中设置。

  • 机器处于薄荷状态。

+0

我会从Wireshark和Fiddler2等网络调试工具开始。 – Foole 2010-02-18 07:18:07

+0

感谢您的提示。 :)在你看来,哪个更适合这两种? – Ian 2010-02-18 08:03:37

+0

Wireshark不那么用户友好,但对于较低级别的调试更好。我只能在用Fiddler2解决它之后才尝试Wireshark。 NB Wireshark不能在Windows下的回送接口上工作。 – Foole 2010-02-18 10:26:47

回答

1

很显然,我已经交谈过IT人员没有意识到企业范围的ISA服务器。

使用Wireshark,我将数据转储到一个HTML文件(一个标准的HTTP 407错误页面)。它清楚地显示了ISA服务器的主机名和IP地址。

总之,问题在于ISA服务器。虽然如果托管该站点的IIS服务器位于机器本身(本地主机)上,为什么机器会联系ISA服务器仍然是一个谜。

解决方法:使用bypassonlocal属性。

<configuration> 
    <system.net> 
     <defaultProxy> 
     <proxy proxyaddress="<ISA-SERVER>" bypassonlocal="true"/> 
     </defaultProxy> 
    </system.net> 
</configuration> 
0

尝试添加下面一行到你的hosts文件:

127.0.0.1 machine.computer.local 
+0

我们已经试过了。问题是,当我们尝试在本地ping“machine.computer.local”时,返回的IP不是127.0.0.1。 – Ian 2010-02-18 08:02:42

+0

我认为你将有更多的机会在serverfault.com上获得正确的答案。投票迁移。 – 2010-02-18 08:06:21

0

下web.config “配置” 部分补充一点:

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

然后就像一个魅力!