WEB-exception при работе с интернет и СОМ-портом

Язык Visual Basic на платформе .NET.

Модераторы: Ramzes, Sebas

Камышовый Кот
Начинающий
Начинающий
 
Сообщения: 1
Зарегистрирован: 05.12.2007 (Ср) 9:39
Откуда: Таганрог

WEB-exception при работе с интернет и СОМ-портом

Сообщение Камышовый Кот » 05.12.2007 (Ср) 9:52

Привет, люди!
Столкнулся с неожиданной проблемой, которая не даёт двигаться дальше.
Вот, набросал очень упрощённый пример...
На порту COM4 устройства висит GPS-приёмник.

Есть форма, на ней лежит кнопка Button1. Форма содержит следующий код:

Код: Выделить всё

Imports System
Imports System.Net
Imports System.IO.Ports

Public Class Form1

    Private Function Open_Serial_Port() As SerialPort
        Try
            Dim ThePort As SerialPort = New SerialPort("COM4", 4800, Parity.None, 8, StopBits.One)
            With ThePort
                .NewLine = vbCrLf
                .ReadTimeout = 2500
                .WriteTimeout = 2500
                .ReadBufferSize = 4096
                .WriteBufferSize = 4096
                .DataBits = 8
            End With
            ThePort.Open()
            Return ThePort
        Catch ex As Exception
            Debug.WriteLine(ex.Message)
            Return Nothing
        End Try
    End Function

    Private Sub WriteIt(ByVal URL As String)
        Dim ex As Exception
        Dim myReq As HttpWebRequest = CType(WebRequest.Create(URL), HttpWebRequest)
        '*****
        'если подключены к интернету не через прокси, то эту часть следует закомментарить
        Dim myProxy As New WebProxy
        Dim newUri As New Uri("http://PROXY:80")
        myProxy.Address = newUri
        myProxy.Credentials = System.Net.CredentialCache.DefaultCredentials
        myReq.Proxy = myProxy
        '*****
        myReq.Credentials = System.Net.CredentialCache.DefaultCredentials
        Try
            Dim myResponce As HttpWebResponse = myReq.GetResponse
            myResponce.Close()
            Debug.WriteLine(URL & " " & Now.ToString)
        Catch ex
            MsgBox(ex.Message)
        End Try
    End Sub

    Public Sub DoWork()
        Dim mySerialPort As SerialPort
        Dim myString As String
        'открываем порт
        mySerialPort = Open_Serial_Port()
        Do
            'читаем из порта
            myString = mySerialPort.ReadExisting
            'запрос в интернет
            WriteIt("http://www.ya.ru")
            Threading.Thread.Sleep(2000)
        Loop
    End Sub

    Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
        DoWork()
    End Sub
End Class



Запустив проект, нажимаем кнопку. Происходит подключение к последовательному порту. Считав из него данные, программа пытается обратиться в интернет. Какое-то время всё работает нормально, но затем возникает исключение
A first chance exception of type 'System.SystemException' occurred in mscorlib.dll
A first chance exception of type 'System.IO.IOException' occurred in mscorlib.dll
A first chance exception of type 'System.SystemException' occurred in mscorlib.dll
A first chance exception of type 'System.Net.WebException' occurred in System.dll


Пробовал просто закомментарить кусок кода, в котором читаем из порта. В этом случае замечательно работаем целый день и никаких исключений не происходит. Равно как и при чтении из порта, без попыток обратиться в интернет - всё нормально.
А вот при обращении к нету после чтения из порта - происходят непонятности....
Пробовал запускать без прокси - результат тот же.

Помогите, а?

Вернуться в Visual Basic .NET

Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 112

    TopList