Tôi cố gắng để sử dụng điều khiển WebBrowser trong một ứng dụng ASP NET:WebBrowser kiểm soát trong một ứng dụng web
public BrowserForm()
{
webBrowser1 = new WebBrowser();
webBrowser1.DocumentCompleted += new WebBrowserDocumentCompletedEventHandler(webBrowser1_DocumentCompleted);
}
private void webBrowser1_DocumentCompleted(Object sender, WebBrowserDocumentCompletedEventArgs e)
{
// code here
}
Nhưng đã nhận lỗi:
'8856f961-340a-11d0-a96b-00c04fd705a2' cannot be instantiated because the current thread is not in a single-threaded apartment
Sau đó, tôi đã làm một cái gì đó như thế này:
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
}
Nhưng vẫn không hoạt động cho tôi như mong muốn ... cho tôi các lỗi đã lỗi như:
Error HRESULT E_FAIL has been returned from a call to a COM component
Mọi công việc xung quanh ?? Tôi không phải là một chuyên gia về luồng hoặc COM nhưng cố gắng chuyển đổi một WindowApplication thành WebApplication, trong đó có một ảnh chụp màn hình của một trang web được cung cấp một URL. :(
Mặc dù bạn yêu cầu một giải pháp, nhưng chỉ cần nghĩ đến ... một cách để đạt được như vậy để tạo một điều khiển ActiveX rằng sẽ thực hiện công việc màn hình-shot, và thêm nó vào ứng dụng ASP.NET của bạn ... –