WebClient 为任何 url 下载空白字符串,但仅在 Web 服务器上

WebClient downloads blank string for any url but only on Webserver

我已经使用我的 MVC Web 应用程序在本地测试了下面的代码,它在本地运行良好但在我的实时 Web 服务器上测试时总是 returns 一个空白字符串,我尝试了不同的 UserAgent 值但是没有成功,我还在网络服务器上设置了一个 windows 表单应用程序并测试了代码,但它下载正常。我想这可能是我的 web.config 文件中的一些设置,但我对 web.config 文件的工作原理知之甚少。

public class Web
    {
        private const string UserAgent = "Mozilla/5.0 (Windows NT 6.3; WOW64; rv:41.0) Gecko/20100101 Firefox/41.0";

        public static string DownloadPage(string url)
        {
            var client = new WebClient();
            client.Encoding = System.Text.Encoding.UTF8;
            client.Headers[HttpRequestHeader.UserAgent] = UserAgent;

            return client.DownloadString(url);
        }
    }

您确定不需要验证吗?

您不需要 UserAgent。 像这样尝试,这就是我让它工作的方式。您现在至少可以看到它抛出的异常。

    public string RequestUrl(string reqUrl)
    {
        WebClient client = new WebClient();
        try
        {
            return client.DownloadString(reqUrl);
        }
        catch (Exception e)
        {
            return "" + e;
        }
    }