You might want to have a look at SignalR, an async signaling library for .NET which would be perfect for a chat-application:
https://github.com/SignalR/SignalR
Scott Hanselman has a good example on his blog:
http://www.hanselman.com/blog/AsynchronousScalableWebApplicationsWithRealtimePersistentLongrunningConnectionsWithSignalR.aspx