I've built a small PC app that resides in the Task Bar Tray until one of our employees sends a signal to it with a handheld device.

When the PC app is activated, we connect to the SQL Server to retrieve records using Integrated Security on the PC:

Private m_conn As SqlConnection

Public Sub New()
  InitializeComponent()
  m_conn = New SqlConnection("Data Source=ACTIVE1;Initial Catalog=Inventory;Integrated Security=SSPI;")
  ' more code that isn't relivant
End Sub

The problem is that after the PC app has sat around idle for a few hours, the employees get the generic SQL error message "Cannot generate SSPI context." Basically, it can not log in.

My routine that uses the SQL Server is all contained, so I don't know how to prevent this error.

Private Sub ViewData()
  Dim cmd As New SqlCommand("SELECT * FROM PartsTable WHERE SN=@SERNO", m_conn)
  cmd.Parameters.AddWithValue("@SERNO", SN)
  Dim da As New SqlDataAdapter(cmd)
  Dim dt As New DataTable()
  Try
    da.Fill(dt)
    If (0 < dt.Rows.Count)) Then
      ' sometimes it gets here, but not if the app has been idle for a while
    End If
  Catch ex As Exception
    MessageBox.Show(ex.Message)
  Finally
    dt.Dispose()
    da.Dispose()
  End Try
End Sub

If I can connect 5-10 times straight, what would cause code like this to fail after it has been sitting idle for a while? When the PC app is activated, a Dialog Box is displayed that the Employee has to confirm the operation on. Only then is this routine called.

Problem resolved. It turned out that our System Administrator doesn't know what he is doing. He set up the account incorrectly, and made changes to the account profile while it was in use.

The code above works fine.

so make it solved :)

Be a part of the DaniWeb community

We're a friendly, industry-focused community of developers, IT pros, digital marketers, and technology enthusiasts meeting, networking, learning, and sharing knowledge.