Configuration :: Can't Access AppSettings From Web.config - ConfigurationSettings.AppSettings Is Empty?
Jun 12, 2010
i have stored settings in the AppSettings section of the web.config file.
I'm trying to access these settings via System.Configuration.ConfigurationSettings.AppSettings, but the AppSettingsCollection is empty. So I can't access this settings.
The strange thing is that this is working on my development machine, but is failing on the production machine. Previous versions of the web application have also worked on the production machine. I'm not aware of any modifications that could couse this.
I have also tried using ConfigurationManager and WebConfigurationManager without success.
Does somebody knows how to access applicationSettings-Keys in web.config (NOT appSettings) from aspx.file like "<%? applicationSettings:Keyname %>? This seems to work only with the old "appSettings".
From code I can it access it with "Properties.Settings.Default.Keyname", thats clear.
My question now: How do I access these values in the code? I understand that the ConfigurationManager can be used to access key value pairs in the appSettings section but this is different.
ConfigurationManager.AppSettings["key1"]; ApplicationSettings/ Properties (autogenerated by using the 'properties'-tab in the project) Look in web.config <applicationSettings> <Projectname.Properties.Settings> <setting name="Testenvironment" serializeAs="String"> <value>True</value> </setting> </Projectname.Properties.Settings> </applicationSettings>
Usage:
Properties.Settings.Default.Testenvironment
So, what the difference between these two storage possibilities of settings in the web.config? As far as I can see, a downside of the appSettings is that you have modify the web.config yourself and the appSettings are not strong tiped, where as the applicationSettings are. Both are replaceable with in a web deployment project.As far as I am concerned, there is no use for appSettings. Am I missing something here? Which is the historically seen older one?
My current project has many peripheral systems and many different environments (testing, integration, development etc). As expected, we're using .config files to dynamically manage everything.
Instead of updating each relavant key when deploying to an environment, I was hoping there was a way to change 1 key only. Such as:
I've done some searching and haven't come up with an elegant solution. I'm aware that .config files can make use of system variables, but this seems like a bit of a high wire act.
In the span's onclick handler i wrote "javascript: alert(getAppSetting('ftpuser'));" for testing, and built some alerts into the function. The first alert returns [object]. That's nice, i thought. The second alert returned 0. That's strange, because the web.config has exactly 1 of this node. So i guess that the function doesn't actually load the correct document. Has anyone done something similar ? When i don't suppy a full path, doesn't javascript assume that it should look for the file in the virtual directory of the current web application where the web.config is ?
I have a web.config in a sub directory with an appSetting in it. It does not seem to be picked up and added to the appSettings collection? what I'm doing wrong or how to get round setting directory specific settings?
The directory has this config file
[Code]....
And its picked up (or not) by an ascx control like so
I've got some custom values in the AppSettings, in my web.config file.
These values get checked upon every Request.
eg.
So if every request checks the web.config file for the value of this key, would be be smart to put this into the Application cache (eg. via the global.asax) instead of checking this value EVERY request?
I'm assuming that when we read a value from the AppSettings, the website does a physical read of the web.config file? or is this information also all read into Memory when the website starts up and all references to any appSettings information is just an inmemory read .. not a disk I/O read?
I am facing an amazing problem in ASP.NET. I have a website with many sub directories. The sub directories have aspx and aspx.cs files but do not contain web.config files. I am using the web.config file of the parent directory for storing config items for the respective code files in sub directories. But when i m trying to read the web.config using ConfigurationManager.AppSettings[] with absolutely the correct keys, there's no value being returned. Most amazing fact is, this same code works fine in dev enviroment but not in staging.
What exactly we have in appSettings.config file. My company is using this file in the code to differentiate between Development and Production Environment.
I have splitted the appSettings from web.config file and put it under 'App_ConfigappSettings.config' which is mapped using configSource attribute.web.config :
[Code]....
It is working fine in my local machine. But giving problem while hosting the application to web server.i.e, Can not find appsettings
I should store application configuration data and default text values that will have the best performance overall. For example, I've been sticking stuff like default URL values and the default text for error messages or application instructions inside the web.config, but now I'm wondering if that will scale...
I've set an AppSetting key for my root directory in my web.config file and now I'm going back through my site and changing all link and resources to use this key. Then If the domain ever changes I can just change one line of code and not worry about links breaking. I'm not quite sure however how to use this when I register my header and footer user controls.
ASP.NET 3.5 Classes throughout our solution referenced ConfigurationManater.AppSettings[""] to get appSettings (from web.config).
We decided we weren't happy with that. Folks were mistyping appSetting key names in code (which compiled fine), and it was cumbersome to track usages. And then there's the duplicated strings throughout the codebase as you reference the same appSettings all over the place.
So, we decided that only one class would be allowed to reference the ConfigurationManager, and the rest of the solution would reference that class when it needed the value of a certain appSetting. ConfigurationManater.AppSettings[""] was static, so we exposed a bunch of static read-only properties off of our single Settings class.
[Code].....
And now we're injecting the ISettings instance as a dependency of the objects which use settings values (the class/interface are in a project that everyone can reference without problems).
In places where we can't inject an existing instance (e.g. Global.asax), we construct a new instance into a static field.
Given all of that, what would you recommend we change, and why?
in one of the application i have been reffering connection string is stored in appsettings! till now i have been storeing the connection in <connectionstring/> element. But, what is the correct way?
So my quetion is, What is the differences between <connectionstring> and <appsettings> in web.config, are there any specific reason why i should or should not be storing connection string in appsettings? Are there any rules / guidlines provided to follow? Or is this completely the choice of the developer?
I am using MS Test to test one of my controller's actions. This method uses the ConfigurationManger to read appSettigns from the web.config. For some reason ConfigurationMangager is not able to find the appsettings.In NUNIT I would just make sure to add a copy of the webconfig file to the test project so that it is available when running in that context. However this is not working for me.
For each appSetting I use, I want to specify a value that will be returned if the specified key isn't found in the appSettings. I was about to create a class to manage this, but I'm thinking this functionality is probably already in the .NET Framework somewhere?
Is there a NameValueCollection/Hash/etc-type class in .NET that will let me specify a key and a fallback/default value -- and return either the key's value, or the specified value?
If there is, I could put the appSettings into an object of that type before calling into it (from various places).