Strange issue , we have created several exe sensors which work fine. 2 sensors that we have created lately use
System.Windows.Forms.WebBrowser object
within console exe. Console tests fine in command window, but when added as a sensor following event does not work private void webBrowser1_DocumentCompleted(object sender, WebBrowserDocumentCompletedEventArgs e)
Is there some level of security that prevents some events from executing.
We are using 2012 window server , program is a simple console app using C# 4.0 framework the only difference is we are using web browser control .
Article Comments
You will need to capsulate the web browser control in its own class.
Code snippet in VB:
#Region " Classes "
Private Class Browser
Private Shared completed As Boolean = False
Private Shared wb As WebBrowser
Shared Function Main(ByVal url As String) As String
completed = False
wb = New WebBrowser()
wb.ScriptErrorsSuppressed = True
RemoveHandler wb.DocumentCompleted, AddressOf wb_DocumentCompleted
AddHandler wb.DocumentCompleted, AddressOf wb_DocumentCompleted
wb.Navigate(New Uri(url))
Dim maxWait As Integer = 150 '// wait for a maximum of 15 seconds
While Not completed AndAlso maxWait > 0
maxWait -= 1
Application.DoEvents()
Thread.Sleep(100)
End While
If maxWait = 0 Then Return ""
Application.DoEvents()
Return wb.DocumentText
End Function
Shared Sub wb_DocumentCompleted(ByVal sender As Object, ByVal e As WebBrowserDocumentCompletedEventArgs)
Thread.Sleep(1000)
completed = True
End Sub
End Class
#End Region
'// and call it like this
Dim content As String = Browser.Main("http://prtgtoolsfamily.com/")
Oct, 2016 - Permalink
Any specific user you're executing this with? Does this user have been logged in and started IE at least once (and configured it)?
Oct, 2016 - Permalink