This morning, I navigated to my website and saw it crashed with this message after any stored procedure:
Timeout expired. The timeout period elapsed prior to completion of the operation or the server is not responding.
I noticed in the Event Viewer that there has been a brute force login attack by someone trying to use 'sa', so I disabled remote access.
Appart from that, I have no clue about what happened. Now, no ASP.Net page can be processed because SQL Server 2008 requests don't work and always return Timeout when trying to execute a stored procedures.
What could be the cause, and what should I check and fix?
[EDIT 3]
Resolved by changing the IP in the connection string to 127.0.0.1. An obscure firewall setting was still blocking external IP after I blocked then unblocked access to SQL port from external IPs.
[EDIT 2]
I made a query directly in SQL and the message shown is:
A transport-level error has occurred when sending the request to the server.
[EDIT]
Three possibilities are listed in a similar thread:
1 - There's a deadlock somewhere.
No, because:
- All stored procedures now answer with this error
- No code or procedure has been changed after the attack.
2 - The database's statistics and/or query plan cache are incorrect
I typed DBCC FREEPROCCACHE, it successfully deleted the cache with no errors.
I typed exec sp_updatestats, cache reset didn't change anything.
3 - The query is too complex and needs to be tuned
Same as 1. And stored procedures are very simple / basic.