我的代码(下面)使用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();
}