Я пытался использовать элемент управления WebBrowser в приложении ASP .NET:
public BrowserForm()
{
webBrowser1 = new WebBrowser();
webBrowser1.DocumentCompleted += new WebBrowserDocumentCompletedEventHandler(webBrowser1_DocumentCompleted);
}
private void webBrowser1_DocumentCompleted(Object sender, WebBrowserDocumentCompletedEventArgs e)
{
// code here
}
Но получил ошибку:
8856f961-340a-11d0-a96b-00c04fd705a2 '
не может быть создан, потому что
текущий поток не находится в
однопоточная квартира
Тогда я сделал что-то вроде этого:
public BrowserForm()
{
ThreadStart ts = new ThreadStart(StartThread);
var t = new Thread(ts);
t.SetApartmentState(ApartmentState.STA);
t.Start();
}
[STAThread]
public void StartThread()
{
webBrowser1 = new WebBrowser();
webBrowser1.DocumentCompleted += new WebBrowserDocumentCompletedEventHandler(webBrowser1_DocumentCompleted);
}
[STAThread]
private void webBrowser1_DocumentCompleted(Object sender, WebBrowserDocumentCompletedEventArgs e)
{
//code here
}
Но, тем не менее, он не работает для меня так, как хотелось бы ... давая мне ошибочные ошибки вроде:
Ошибка HRESULT E_FAIL была возвращена
от звонка до COM-компонента
Любая работа вокруг ?? Я не специалист по многопоточности или COM, но пытаюсь преобразовать WindowApplication в WebApplication, которая делает снимок экрана веб-страницы с предоставленным URL. (