VB.NET Windows Service не работает с MySql - PullRequest
1 голос
/ 05 декабря 2011

Я создаю службу Windows с таймером, который будет отмечаться каждые несколько секунд, а затем запрашивать базу данных. Таймер службы работает нормально, но как только я добавляю какие-либо подробности MySql, он перестает работать.

Простое добавление нескольких строк ниже останавливает его работу

    Dim ConnectionString As String = "Data Source=localhost;User ID=root;Password=******;database=******;"
    Dim sqlConn As MySqlConnection
    sqlConn = New MySqlConnection(ConnectionString)

Без этих строк таймер продолжает тикать (я пишу EventLog, чтобы посмотреть, что происходит)

Я думал, что это может быть проблема со ссылками, но я добавил ссылку MySql.Data.

Любая помощь будет оценена, спасибо.

EDIT: Весь метод добавлен по запросу

Imports MySql.Data
Imports MySql.Data.MySqlClient

Public Class Service1

    Protected Overrides Sub OnStart(ByVal args() As String)

        serviceTimer.Enabled = True
        serviceTimer.Start()
        EventLog.WriteEntry("MyService Started and Timer started")
    End Sub

    Protected Overrides Sub OnStop()
        serviceTimer.Stop()
        EventLog.WriteEntry("Out OnStop", EventLogEntryType.Information)
    End Sub

    Private Sub serviceTimer_Elapsed(ByVal sender As System.Object, ByVal e As System.Timers.ElapsedEventArgs) Handles serviceTimer.Elapsed
        Dim MyLog As New EventLog()

        If Not EventLog.SourceExists("MyService") Then
            EventLog.CreateEventSource("MyService", "Myservice Log")
        End If
        MyLog.Source = "MyService"
        EventLog.WriteEntry("MyService Log", "This is log on " & CStr(TimeOfDay), EventLogEntryType.Information)

        Dim ConnectionString As String = "Data Source=localhost;User ID=root;Password=******;database=******;"

        Using sqlConn As New MySqlConnection(ConnectionString)
            Dim sqlComm As MySqlCommand
            Dim outputParam As Integer
            sqlConn.Open()
            sqlComm = New MySqlCommand("uspTest", sqlConn)
            sqlComm.CommandType = CommandType.StoredProcedure
            sqlComm.Parameters.Add(New MySqlParameter("Test", "100"))
            outputParam = CInt(sqlComm.ExecuteScalar)
            sqlConn.Close()
        End Using

    End Sub
End Class

1 Ответ

0 голосов
/ 05 декабря 2011

Оказывается, что приведенный выше код был верным, я забыл установить MySQL / NET Connector на мой Сервер, я установил его на свой ПК, но забыл установить его на свой Сервер!

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...