0

好的,伙计们..这是交易-->

我在我的控制台应用程序中使用了一个 Web 服务,并且在从我的本地计算机运行时能够成功调用它。

当我在我的 Win 2K8 机器上部署应用程序时,问题就出现了。我第一次想到 ->无法解析远程名称:'www.www.net' -> 所以我添加了一个 WebProxy 并将其连接到 Web 服务的 .Proxy 属性。

我遇到的下一个错误是 -> The request failed with HTTP status 407: authenticationrequired。我不知道如何解决同样的问题。

我用过 --> .Proxy.Credentials = System.Net.CredentialCache.DefaultCredentials; 并且还明确定义了代理凭据->用户名,密码,域->但无济于事

当从服务器内部通过浏览器访问时,Web 服务工作正常。

任何帮助将不胜感激。

谢谢你的时间。

Rgds,

4

2 回答 2

0

你在代理服务器后面吗?您的浏览器是否配置了代理服务器?407 表示“需要代理身份验证”,因此您需要提供可以在代理服务器上进行身份验证的凭据。我的第一个猜测是你需要这样的东西。

  var credentials = new NetworkCredential("username", "password", "domain");
  WebProxy proxy = new WebProxy("YourProxyServerUri", true) { Credentials = credentials };

然后你应该使用 te 代理对象作为你的 web 服务的代理服务器。

您还可以使用系统配置的代理服务器:

  WebProxy myProxy = (WebProxy) System.Net.HttpWebRequest.GetSystemWebProxy();

或者你甚至可以在 web.config 中设置它(但我认为这里不可能提供凭据:

 <system.net> 
      <defaultProxy useDefaultCredentials="true"> 
         <proxy usesystemdefault="False" proxyaddress="YourProxyServerUri"                
          bypassonlocal="True" /> 
      </defaultProxy> 
 </system.net>

如果一切正常,您可能希望从代码外部提供某种方式在运行时配置代理服务器和凭据。否则,如果您的生产环境或位置发生变化,您总是必须重新编译。您可以将其放在 web.config 中的 appSettings 部分、数据库、app.config 等中。

还要确保在设置中提供正确的端口号(例如 192.168.1.100:8888)

于 2014-07-30T05:46:54.783 回答
0

好的..这是它最终起作用的原因-->

与 NOC(网络)人员取得​​了联系 - 他们反过来打开了对服务器的请求/响应的显式基于 IP 的访问。

这会导致安全漏洞吗?我不确定。

Rgds,

于 2014-08-01T10:19:22.633 回答