none
WebBrowser控件在windows服务的使用。 RRS feed

  • 问题

  • 我自己写了个windows服务,里面使用了WebBrowser控件。在new WebBrowser控件,出现“当前线程不在单线程单元中,因此无法实例化 ActiveX 控件“8856f961-340a-11d0-a96b-00c04fd705a2”。”这个错误,请问有谁有解决办法吗,是用来使用数据抓取功能的。

    2012年8月8日 8:27

答案

  • 另外新建一个线程来运行webbrowser:

    这是我的测试代码:

        Protected Overrides Sub OnStart(ByVal args() As String)
            ' Add code here to start your service. This method should set things
            ' in motion so your service can do its work.
            'MsgBox("OnStart")
            Try
                Dim t1 As New Threading.Thread(AddressOf RunWebBrowser)
                t1.SetApartmentState(Threading.ApartmentState.STA)
                t1.Start()
                EventLog1.WriteEntry(" t.Start()")
            Catch ex As Exception
                EventLog1.WriteEntry(ex.Message, EventLogEntryType.Error)
                Me.ExitCode = 100
                Me.Stop()
            End Try
        End Sub
    
        Private Sub RunWebBrowser()
            Dim wb As New WebBrowser
            wb.Navigate("www.microsoft.com")
        End Sub

    希望有用。


    Mike Feng
    MSDN Community Support | Feedback to us
    Please remember to mark the replies as answers if they help and unmark them if they provide no help.

    2012年8月9日 8:04
    版主