So just like many of you I've had this problem and it would happen to me about 20 times a day depending on how much I hearth/change zones.
One "solution" blizz recommends is deleting the cache, WTF, and interface folders then restart your comp and relog. Only bad thing is you lose all your key binds and all your personal settings get set to default. Naturally, I didn't not want to do this and waited for more info on the problem.
While scanning the official wow forums I came across another fix by flushing your DNS. A very easy thing to do that doesn't reset any of your settings and best of all IT WORKED!... So far *knocks on wood*.
If you're like me you avoid the official wow site as much as possible because it's just impossible to avoid the same threads popping up and every support thread is filled with "this is happenin to me too" comments without any real good solutions. Plus the long loadig times from so many people being on at once. So I have copied the steps for you!
- Go to Start then Run and type the word "cmd" (without quotation marks) in the Run box. A DOS window should open on screen.
- Type: "ipconfig /release" (without quotation marks) in the DOS window.
- Wait a few seconds for a reply that the IP address has been released.
- Type: "ipconfig /renew" (without quotation marks) in the DOS window.
- Wait a few seconds for a reply that the IP address has been re-established.
- Type: "ipconfig /flushdns" (without quotation marks) in the DOS window.
- Close the DOS window and attempt to make a connection.
Try that, it worked for me and I really hope it can work for you guys too!