.NET is a great platform and I beleive Mono is quite capable if you decide to go the non-Windows route. In fact, I am currently building an Enterprise framework on top of Mono and various other technologies (Fluent NHibernate, etc). The most viable alternative for me was Java, and after a lot of deliberation we ended up with Mono. If need be, our apps can then be hosted on Windows as well.
Mono is a wonderful platform (I'm using it for the project I'm writing right now!), but its ASP.NET support is kinda iffy and while I cannot prove it right now, I have a sneaking suspicion that its internals (the garbage collector, primarily) are not geared toward the sort of usage pattern you see in web applications.
They've been working on a new GC for Mono that is better for ASP.NET and similar type of applications. By default, Mono uses the Boehm GC, but since 2.8 you can choose the new generational GC (--gc=sgen command line parameter). As far as I know it's very close to being deemed production-worthy.