将 "Accepted-Language" 添加到 HtmlWeb pre-request 的 headers 时抛出 System.AccessViolationException

System.AccessViolationException is thrown when adding an "Accepted-Language" to a HtmlWeb pre-request's headers

调试我的 UWP-application 时,它抛出一个 System.AccessViolationException 消息'试图读取或写入受保护的内存。这通常表示其他内存已损坏。' 并且堆栈跟踪为空。尝试将 "Accept-Language" ("en-US") 添加到 HtmlWeb object 的 pre-request header 时抛出异常(参见下面的图片和代码)。 运行 使用 xUnit 的相同代码工作正常。有人认识到这个问题吗?

抛出异常图片:https://i.imgur.com/gHkmR6q.png

public static HtmlNode GetHtmlNode(string url, string requestLanguage)
{
    var htmlWeb = new HtmlWeb();
    htmlWeb.PreRequest += (request) =>
    {
        // This line of code throws the exception (see the picture as well)
        request.Headers.Add("Accept-Language", requestLanguage);
        return true;
    };
    return htmlWeb.Load(url).DocumentNode;
}

我完全不使用 HtmlWeb 解决了这个问题,如下所示:

public static HtmlNode GetHtmlNode(string url, string requestLanguageCode)
{
    try
    {
        HttpWebRequest request = (HttpWebRequest)WebRequest.Create(url);
        request.Method = "GET";
        request.UserAgent = "Mozilla";
        request.Accept = "Accept: text/html";
        request.Headers.Add("Accept-Language: " + requestLanguageCode);

        HttpWebResponse response = (HttpWebResponse)request.GetResponse();
        var stream = response.GetResponseStream();

        using (var reader = new StreamReader(stream))
        {
            string html = reader.ReadToEnd();
            var doc = new HtmlDocument();
            doc.LoadHtml(html);
            return doc.DocumentNode;
        }
    }
    catch (WebException)
    {
        return null;
    }
}