I would recommend that your client always has to go through your server and never directly to the database. To my knowledge also most systems which claim to be real time are not strictly real time, so depending on your application you can, most of the time, get away with 'old' data. Usually allowing 5-15 minute intervals suffices.
Another thing you could do would be to make the entire process event driven, so basically once a mobile device updates the database, through a process which I am assuming you have control on you can fire an event and the server will make the data available and send a notification (another event) to all the logged in clients. You could use multithreading to make this process a bit faster.
Laslty, I do not have much experience with web development in .NET, so maybe you could wait a day or two till people with more knowledge can get here and help. I also tend to find http://www.stackoverflow.com very helpful, so you might want to give it a shot.