Start by checking that your connections are all closed and Disposed: if you aren't doing that, it's quite likely that SQL has run out of connections - particularly if you are creating, opening, and discarding a new connection every 5 seconds...
Put your SqlConnection into a
using
block and see if that improves things:
using (SqlConnection con = new SqlConnection(strConnect))
{
...
}