This code is in a timer in a windows service. The service installs successfuly and starts. I tested the code on a web form and it worked. Now when it runs in the service it errors out. From what I can tell it errors out on "Cnn.Open()". Other than that I don't know. The app settings are correct. the connection string is the used on a web app and works, so I don't see why it wouldn't work here.

These are the imported namespaces:
1. Imports System.ServiceProcess
2. Imports System.Data.SqlClient
3. Imports System.Configuration
4. Imports System.Web.Mail.SmtpMail
5. Imports System.DirectoryServices

Thanks for your assistance

Code:
Private Sub Timer_Elapsed(ByVal sender As System.Object, ByVal e As System.Timers.ElapsedEventArgs) Handles Timer.Elapsed
        Dim Cnn As New SqlConnection(ConfigurationSettings.AppSettings("Cnn"))
        Dim cmdCheck As New SqlCommand()
        Dim rdrCheck As SqlDataReader
        Dim DirEntry As New DirectoryEntry(ConfigurationSettings.AppSettings("ad"), ConfigurationSettings.AppSettings("admin"), ConfigurationSettings.AppSettings("pw"))
        Dim GroupSearch As New DirectorySearcher(DirEntry)
        Dim EmailSearch As New DirectorySearcher(DirEntry)
        Dim GroupResult, EmailResult As SearchResult
        Dim EmailList As New ArrayList()
        Dim X As Integer
        Dim BodyText As String

        Try
            SmtpServer = "W2KExchange" 'specify email server
            EmailSearch.PropertiesToLoad.Add("Mail") 'select email address for user search
            GroupSearch.PropertiesToLoad.Add("member") 'select users for the group search
            GroupSearch.Filter = ("(CN=Satellite Email Notification)")
            GroupResult = GroupSearch.FindOne
            For X = 0 To GroupResult.Properties("member").Count - 1 'select each users email address and enter it into an array
                EmailSearch.Filter = ("(" & Left(GroupResult.Properties("member").Item(X), InStr(GroupResult.Properties("member").Item(X), ",") - 1) & ")")
                EmailResult = EmailSearch.FindOne
                EmailList.Add(EmailResult.Properties("Mail").Item(0))
            Next
        Catch
            'email dba that the active directory search errored
            NotifyAdmin("Error searching Acitve Directory at " & Date.Now, EventLogEntryType.Error)
        Finally
            DirEntry.Dispose()
            GroupSearch.Dispose()
            EmailSearch.Dispose()
            DirEntry = Nothing
            GroupSearch = Nothing
            EmailSearch = Nothing
        End Try

        Try 'attempt to run a stored procedure and email users
            With cmdCheck 'check to see if there are any feeds in the next 45 mintues
                .CommandType = CommandType.StoredProcedure
                .CommandText = "sp_CheckForFeeds_s"
                .Parameters.Add("@DateTime", SqlDbType.DateTime, 20).Value = Date.Now
                .CommandTimeout = 30
                .Connection = Cnn
            End With
            Cnn.Open()
            rdrCheck = cmdCheck.ExecuteReader
            While rdrCheck.Read 'send an email for each feed in the reader
                BodyText = "Feed Time: " & rdrCheck.Item("FeedTime") & ", Signal: " & rdrCheck.Item("Signal") & ", Satellite: " & rdrCheck.Item("Satellite") & ", Sent: " & Date.Now
                For X = 0 To EmailList.Count - 1
                    Send(ConfigurationSettings.AppSettings("EmailFrom"), EmailList.Item(X), "Feed Notification", BodyText)
                Next
            End While
            rdrCheck.Close()
            Cnn.Close()
        Catch 'attempt failed
            'email dba that the stored procedure and email errored
            NotifyAdmin("Error quering database and emailing staff at " & Date.Now, EventLogEntryType.Error)
        Finally
            Cnn.Dispose()
            cmdCheck.Dispose()
            Cnn = Nothing
            cmdCheck = Nothing
        End Try
    End Sub