There are a number of ways to accomplish this, depending on your levels of experience and the features installed on your client's server - without more information (that would probably make this question too localised for this site) I can't walk you through the exact steps.
One option would be to start with something like FTP and configure everything manually. This would give you complete control, and requires minimal additional software on the server:
- FTP the files for the site, and either a database backup file or the .MDF/LDF files, (or if using the disk based access the .MDB.
- Configure IIS to serve your site:
- Create a new Website, with the Home Directory pointing to the location of your site on the disk.
- Ensure the App Pool is configured to use the correct version of ASP.NET (2.0 for .NET 2.0 - 3.5 apps, or 4.0 for .NET 4.0 apps).
- Deploy your database into SQL Server if needed (either by restoring the backup file to a new database, or attaching the files directly), ensuring you name the new database correctly.
- Ensure your logins are correct - if you're using SQL Logins, you'll need to remove these from the database and re-create them on the server, adding them back to the database, if you're using Integrated Auth, ensure that the user the App Pool is running under has the correct rights to your database.
- Update the connection strings in your web.config to point to the new Database server.
- You should now be able to browse your site.
- [...]
- Profit!
Alternatively, if your client's server supports it, you could try either the Publish Web Site Tool within Visual Studio or Web Deploy for IIS 7.
Depending on how you've built the site, you may need to perform some additional work on the files to remove explicit paths to /demos/
- typically for managed links you can use ~/
to get you to the root of your application (rather than the root of the server), but these might not work for standard links (img src, link href's, etc.)