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.
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.
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.
I am maintaining some Asp.net code and need some help figuring something out. Basically I have a C# statememt that reads as follows
String Em = System.ConfigurationManager.AppSettings.Get("EmailAddress")
So something tells me it is trying to read an email address. I looked in the web.config file and I don't see the string "EmailAdress" defined in the <appsettings> tags or anywhere else. Could I be looking in the wrong web.config file? Or where is system.ConfigurationManager.AppSettngs looking for the definition of the email address?
I came across a strange behavior with this property. I had a winform with 2 buttons "button1" and "close". In the button1_clicked event I had the following code. I did not put any code in the for loop
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.
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?
When I run this piece of code I get this error message:
[Code]....
Error 1 The name 'ConfigurationManager' does not exist in the current context C:UsersPaul HudsonDesktopTT-ASP_Net_My_ProjectsConfiurationDemoDefault.aspx.cs 13 32 C:...ConfiurationDemo
I've tried adding reference for ConfigurationManager but it still does not work, what do I do?
The other day I came across an alternative way of accessing web.config configuration in some article. It allowed to:provide path to web.config file modify web.config configuration at runtime like:config.MySetting = "new value";load web.config from another web application in the same IIS (I'm not sure about it)work with configuration using class instance instead of static ConfigurationManager class
This is a bizarre behaviour I've just noticed, but very dangerous.I have the following line of code:
using (SqlConnection connection = new SqlConnection(ConfigurationManager.ConnectionStrings["SmartFormsDB"].ConnectionString))
When I run in my dev environment works fine, but when I compile and push my code to the test machine that contains a web.config with a Test DB setting, the test website still uses my dev connection string. It's behaving as if the connection string was compiled into the binary!
I am having this strange case, at first time when the page loades, everything goes fine. But as soon as I click on any link which makes any ajax request, after that, I get this error while trying to read the configuration."System.Configuration.ConfigurationManager.ConnectionStrings' threw an exception of type 'System.Web.HttpException"I am using asp.net mvc 1.0
What exactly we have in appSettings.config file. My company is using this file in the code to differentiate between Development and Production Environment.
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?
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).
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
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 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 have customer specific settings in a custom.config which links back to web.config.
What I want to accomplish is to load the settings from appsettings section in custom.config into setup.aspx page. The settings will be loaded into textbox, dropdown list etc. After the user makes changes then save it back to custom.config. Is this possible? It seems to me that the appSettings section is readonly. What would be best approach to accomplish this?
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
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.