Следующий код работает нормально в Visual Studio, но веб-сайт падает при развертывании в IIS7. Кажется, что он не работает в строке Application.DoEvents, потому что BrowsePage.ReadyState всегда не инициализируется (0) и никогда не завершается (4). Это происходит только при развертывании в IIS (с использованием версии 7). Это нормально при отладке в визуальной Sudio:ASP.NET Threading
Protected Sub Button1_Click(ByVal sender As Object, ByVal e As System.EventArgs) Handles Button1.Click
Dim url As String = Request.Url.AbsoluteUri
Dim Test As Bitmap = ImageFromHtml.ConvertPage(url)
End Sub
Public Function ConvertPage(ByVal PageUrl As String) As Bitmap
Me.PageUrl = PageUrl
Dim thrCurrent As New Thread(New ThreadStart(AddressOf CreateImage))
thrCurrent.SetApartmentState(ApartmentState.STA)
thrCurrent.Start()
thrCurrent.Join()
Return ConvertedImage
End Function
Private Sub CreateImage()
Dim BrowsePage As New WebBrowser()
BrowsePage.ScriptErrorsSuppressed = False
BrowsePage.ScrollBarsEnabled = False
BrowsePage.Navigate(PageUrl)
AddHandler BrowsePage.DocumentCompleted, AddressOf _
WebBrowser_DocumentCompleted
While BrowsePage.ReadyState <> WebBrowserReadyState.Complete
Application.DoEvents()
End While
BrowsePage.Dispose()
End Sub
Я заметил, что я не могу получить доступ к веб-странице в переменной PAGEURL в то время как это работает на IIS. Поэтому я считаю, что это проблема блокировки.
WinDBG говорит: CLR исключение - код e0434352 (первый шанс)
Хммм, очень интересно, и одно можно сказать точно: кажется, что ваш сайт падает при развертывании на IIS7 (на линии соединения)! Прямо сейчас, хорошая вещь, чтобы добавить к вашему вопросу будет ошибка сбоя, которую вы видите, когда сайт падает. – Kiril
@Lirik, спасибо. Я отредактировал вопрос. – w0051977
Что-нибудь еще, кроме «исключения CLR - код e0434352»? – Kiril