I've recently wiped and reinstalled/configured all the components of my web and DB servers. I'm running IIS 6, .NET 3.5, SQL Server 2005. The two servers are separate VM's in the same domain. My web app functions perfectly... 90% of the time. But every now and then I get this error or a generic runtime error:
System.Data.SqlClient.SqlException: A transport-level error has occurred when receiving results from the server. (provider: TCP Provider, error: 0 - The semaphore timeout period has expired.)
Can you guys give me some leads on where to start troubleshooting? I really think I've missed something in IIS.
Thanks in advance!
Remove HDD entries via Device Manager. If “The semaphore timeout period has expired” error prevents you from using HDD normally, you should check for old entries of external drives on Device Manager and, if there are any, remove them.
When you transfer a certain file, the transfer process can be blocked by antivirus software or Windows Firewall and you will receive the semaphore timeout period has expired 0x80070079 error message. Thus, you can Disable Antivirus and Windows Firewall to have a try.
After troubleshooting this for hours and sitting on the phone with my hosting group they discovered that there was a problem with their networking configuration. The solution was made clearer when during my testing one of the VM's suddenly couldn't find the domain, and a simple 'ping' to the IP of each box from the other would occasionally time out. This ruled out DNS entirely. After the hosting group applied the proper configuration on their end the app has been stable and FAST!
Thanks for everyone's help!
A few pointers are here .Basically the error is being thrown by the network layer and SQL server is just reporting it.
Hope that helps.
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With