I would vote for DotNetNuke , this is ASP.Net, but it will save you the overhead of learning a complete new environment, language and tool just to implement a βfreeβ CMS, realistic, how much is your time? It meets all your criteria and there are currently 600,000 users - this means that you can simply continue with it, somewhere someone has already worked on your problems for you.
As for expensive hosting, why not accept it in another country, I get $ 5 a month for DotNetNuke in the states, and I am a code from Australia.
source share