【问题标题】:Xdocument.load error Unable to connect to remote serverXdocument.load 错误无法连接到远程服务器
【发布时间】:2015-04-22 09:54:17
【问题描述】:

我有以下问题

  Dim strPath = String.Concat("http://www.intraneturl.com/xml")
  Dim EmpXDoc As New XDocument
  EmpXDoc = XDocument.Load(strPath)

上面的代码在开发服务器(连接到 Intranet)中运行良好,但是在将其托管到生产服务器(通过代理连接到 Intranet 和使用公共 ip 的 Internet)之后,上面的代码给出“无法连接到远程服务器”错误。但是,如果我尝试通过客户端 javascript 解析 xml 网站,如下所示:

var parser = new ActiveXObject("microsoft.xmldom");
parser.load("http://www.intraneturl.com/xml");
nodes = parser.documentElement.childNodes;

它完美无缺。

这意味着解析器在客户端 javascript 中工作,但不在 aspx 页面中(在主机之后)。有人会指导我吗?

【问题讨论】:

    标签: c# vb.net xml-parsing .net-4.5


    【解决方案1】:

    如果有代理,请在加载文档时设置代理

    WebProxy wp = new WebProxy(ProxyAddress);
    wp.Credentials = new NetworkCredential(ProxyUsername, ProxyPassword);
    WebClient wc = new WebClient(){ Proxy =wp};
    MemoryStream ms = new MemoryStream(wc.DownloadData("http://www.intraneturl.com/xml"));
    XmlTextReader rdr = new XmlTextReader(ms);
    EmpXDoc = XDocument.Load(rdr);
    

    【讨论】:

    • 好点。我猜你也可以使用WebRequest.DefaultWebProxy (msdn.microsoft.com/en-us/library/…)
    • Super .... @Damith.. 您的解决方案效果很好,我将其标记为答案。还要感谢 Thorsten Dittmar……你们俩都拯救了我的一天。
    【解决方案2】:

    好吧,在一种情况下,解析发生在客户端(JavaScript),它可能没有互联网连接,所以它可以成功解析内网 url。

    其他代码在服务器上运行,它-在内部和外部都连接-可能认为Intranet url是Extranet url,因此可能无法解析它。

    您可以尝试在 URL 中使用 IP 地址来阻止 DNS 请求。

    【讨论】:

    • 我尝试过使用像("http://10.xx.xx.xx.xx/xml")这样的IP地址,但它不起作用
    • 检查使用 Damith 建议的代理是否有帮助。
    猜你喜欢
    • 2013-06-04
    • 1970-01-01
    • 1970-01-01
    • 2018-12-05
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多