For a cloud based solution, you might look into Amazon Elastic Beanstalk. While technically not free, I think they offer trial and/or developer accounts for free up to a certain time period and/or bandwidth. You might need a machine to build the code but still, you might be able to use the free account for that as well.
From the link:
AWS Elastic Beanstalk Functionality
For .NET Developers
To deploy .NET applications using AWS Elastic Beanstalk, you simply:
Create your application as you normally would using Microsoft Visual
Studio. Publish your application to AWS Elastic Beanstalk using the
AWS Toolkit for Visual Studio. Alternatively, you can package your
deployable code into a Microsoft Web Deploy .zip package and upload to
AWS Elastic Beanstalk using the AWS Management Console. Behind the
scenes, Elastic Beanstalk handles the provisioning of a load balancer
and the deployment of your Microsoft Web Deploy package to one or more
Amazon EC2 instances running Windows Server 2008 R2 and IIS 7.5.
Within minutes you can access your application at a customized URL
(e.g. http://myapp.elasticbeanstalk.com/).
Also, you can find out more about the free stuff here:
http://aws.amazon.com/free/