使用WebBrowser控件(WinForms)为某些URL截取屏幕截图的问题

时间:2015-02-13 14:13:15

标签: multithreading winforms iis screenshot

我的代码(下面)使用foreach循环为多个网址并保存每个网址的屏幕截图)。这段代码在我的开发环境中完美运行(Visual Studio 2010,Windows 7 64位)。我可以截取url的屏幕截图并将其保存在文件夹中。但是我在服务器(Windows server 2003,IIS-6.0)中部署的代码相同,它不会为某些URL保存屏幕截图。我捕获了日志,它说System.Threading.ThreadAbortException:Thread正在中止.System.Threading.Thread.JoinInternal()。

它是否适用于IIS 6.0或任何其他设置与部署服务器有关?它在我的本地环境中完美运行。任何帮助表示赞赏。

public void Capture(string url,string path)     {         _path = path;

    var thread = new Thread(() =>
    {
        using (var browser = new WebBrowser())
        {
            browser.ScrollBarsEnabled = false;
            browser.AllowNavigation = true;
            browser.Navigate(url);
            browser.Width = 1600;
            browser.Height = 1600;
            browser.ScriptErrorsSuppressed = true;
            browser.DocumentCompleted += DocumentCompleted;

            while (browser.ReadyState != WebBrowserReadyState.Complete)
            {
                Application.DoEvents();
            }
        }
    });

    thread.SetApartmentState(ApartmentState.STA);
    thread.Start();
    thread.Join();
}

0 个答案:

没有答案