C# 为什么此代码在WinForms中运行,而在ASP.NET中不运行?

C# 为什么此代码在WinForms中运行,而在ASP.NET中不运行?,c#,asp.net,winforms,C#,Asp.net,Winforms,这段代码在控制台应用程序和WinForm应用程序中运行良好 我希望在ASP.NET网站上使用相同的逻辑,在该网站上,无法使用httpwebrequest检索数据 请让我知道如何解决这个问题。还有比这更好的吗。我已经标记了导致问题的线路 private void runBrowserThread() { var th = new Thread(() => { var br = new WebBrowser(); br.DocumentCompl

这段代码在控制台应用程序和WinForm应用程序中运行良好

我希望在ASP.NET网站上使用相同的逻辑,在该网站上,无法使用
httpwebrequest
检索数据

请让我知道如何解决这个问题。还有比这更好的吗。我已经标记了导致问题的线路

private void runBrowserThread()
{
    var th = new Thread(() =>
    {
        var br = new WebBrowser();
        br.DocumentCompleted += browser_DocumentCompletedNew;
        br.Navigate("https://www.linkedin.com/uas/login");
        Application.Run();    // ERROR ON THIS LINE 
    });
    th.SetApartmentState(ApartmentState.STA);
    th.Start();
}

void browser_DocumentCompletedNew(object sender, 
                                  WebBrowserDocumentCompletedEventArgs e)
{
    var br = sender as WebBrowser;
    if (br.Url == e.Url)
    {
    }
}

提前感谢您。

您必须换一种方式进行操作,因为应用程序仅在Windows.Form类的上下文中有效。即使它工作正常,Application.Run所能做的就是运行一个什么都不做的线程

我强烈建议您将其保留为桌面应用程序,您正在尝试的操作并不真正适合web应用程序


如果你需要帮助,你必须向我们提供更多的信息。此时,您拥有的代码几乎没有任何实质内容。

我建议为此使用
System.Net.WebClient
System.Net.HttpWebRequest

下面是一个使用
HttpWebRequest
的简单示例:

WebRequest request = HttpWebRequest.Create("https://www.linkedin.com/uas/login");
request.Method = WebRequestMethods.Http.Get;

using (WebResponse response = request.GetResponse())
{                
    StreamReader reader = new StreamReader(response.GetResponseStream());
    string responseText = reader.ReadToEnd();
    reader.Close();
}

Application.Run通常仅在Winforms应用程序中使用。请参阅:为什么希望windows窗体控件在asp.net环境中工作?取消一个站点,但它不是纯html,它加载脚本大约30秒,然后显示数据,因此我使用了webbrowser控件。加载所有内容后,它将进入documentcompletedevent,以便我可以获得结果。还有别的办法吗?现在想在网站上在线运行同样的东西,所以需要帮助..使用Webclient类。啊,是的,还有一个问题,一些字段需要填写并提交。所以这是使用webbrowser控件的另一个原因,因为我在发出post请求方面没有太多的专业知识。我发布的场景不可能吗?看起来OP只是想做一些刮片,这非常适合web应用程序。它不能像在windows应用程序中那样完成。