Differentiating web.config between dev, staging and production environments

Anyone have any good tips on handling differences in web.config settings between environments? I’ve considered creating a ‘config’ folder in our source control system but outside of the web hierarchy, and having the deployment process copy the appropriate config files (web.dev.config,web.staging.config, web.production.config) into the web folder upon deployment. I’ve also seen posts on how to programmatically change the config settings (WCF endpoints, connection strings, etc) when the app starts.

the best way to connect sql server (Windows authentication vs SQL Server authentication) for asp.net app

I have a database and a site having forms authentication. It is working fine with VS2008. This time, I am using “Trusted_connection =True”. But when it is opened from outside or directly from browser then I am getting error “Login failed for user ‘NT AUTHORITYANONYMOUS LOGON’.”

Best way to switch configuration between Development/UAT/Prod environments in ASP.NET?

I need to switch among 3 different environments when developing my web app – Development, UAT, and Prod. I have different database connections in my configuration files for all 3. I have seen switching these settings done manually by changing all references and then rebuilding the solution, and also done with preprocessor directives. Is there an easy way to do this based on some variable so that the configuration doesn’t have to be revised when deploying to a new environment every time?