views:

3686

answers:

1

Where is the Web.config supposed to go in an ASP.NET MVC project?

I just ran into an error trying to do this:

    _cnstr = System.Configuration.ConfigurationManager.ConnectionStrings["production"].ConnectionString;

The default MVC template puts the Web.config at the root of the project.

If you go into the properties of a project (the screen with the vertical tabs). Go to settings and try to create an application setting, it will prompt you that you don't have a config file. When it creates the file it does it at the base of the Views folder. So now I have two Web.config files. Is this how it supposed to be?

And I guess I should put my connection string in the "views" web.config to avoid the error. Thoughts? Is this a bug in the last release of the ASP.NET MVC bits?

UPDATE: See David's answer

+15  A: 

The settings should go into the web.config at the application root. The web.config in the views folder is there to block direct access to the view aspx pages which should only get served through controllers.

(And: I tried creating application settings on my machine, with ASP.NET MVC RC 1 installed, using a newly created mvc web application. They get added to the web.config at the application root.)

David Tischler
Thanks for the explanation. I got my connection string in the root, which is where I must have thought I first put it. But now everything is working fine thanks for the explanation.
tyndall