Create and Use a Custom Config File
page 3 of 7
by Steven Archibald
Feedback
Average Rating: This article has not yet been rated.
Views (Total / Last 10 Days): 43407/ 55

Change the Standard Web.config File

We need to modify Web.config in two different areas; near the top, and near the bottom.

Listing 2 – Change the Top Area

<?xml version="1.0" encoding="utf-8" ?>
<configSections>
 <section name="appReleaseSection" type="System.Configuration.NameValueFileSectionHandler, 
 System, Version=1.0.3300.0, Culture=neutral, PublicKeyToken=b77a5c561934e089"/>
</configSections>

Note that this code goes between the <configuration> opening tag and the <system.web> opening tag. You really do need all the gobbledy-gook in the type attribute. I’ve tried taking parts of it out, and it just stops working without it. Note that here we are referencing the NameValueFileSectionHandler alluded to earlier. There is a useful Microsoft reference on creating new configuration sections that you should take a moment to read. The most useful part of this reference is how to use the same configuration section handler that is used for the <appSettings> section. That is what we are doing here. The tag <section> above was merely lifted from similar code. The code sample in the link has some additional section tags that aren’t required, so I’ve eliminated them. You can also create your own IConfigurationSectionHandler object, but it’s just simpler to use one that already exists, particularly since our data is so simple.

If you are not familiar where to locate the Version, Culture, and PublicKeyToken values for the NameValueFileSectionHandler, all you have to do is look at the machine.config file on server.

The following code goes just below the closing </appSettings> or </system.web> depending on whether you have an <appSettings> section or not. In my example, we do.

Listing 3 – Change the Bottom Area

</appSettings>
<appReleaseSection file="Release.config">
</appReleaseSection>

Note that the file attribute is a relative path assignment. You can probably place your custom file lower down from the root, say in a special "config" directory if you want to be clever, but this suffices for the example.


View Entire Article

User Comments

Title: Thanks   
Name: Rauf
Date: 2009-12-22 7:03:28 AM
Comment:
Very useful article. keep the good work going
Cheers!!
Title: Thanks   
Name: Fawad
Date: 2009-11-20 10:22:09 AM
Comment:
Thanks buddy, loved the article. Here is a VB counterpart if anyone needs it:
===========================================================
********* Get Config Values ******************************
===========================================================
Public Shared Function GetConfigValue(ByVal strSectionName As String, ByVal strKeyName As String) As String

Dim temp As String = Nothing

Dim myData As NameValueCollection = DirectCast(ConfigurationManager.GetSection(strSectionName), _
NameValueCollection)

If myData Is Nothing Then
'Section name not found
Throw New NullReferenceException("Section name not found:" & strSectionName)
Else
'section found, try to get the value
temp = myData.Get(strKeyName)

If temp Is Nothing Then
'Key name not found, throw new exception
Throw New NullReferenceException("Key name not found: " & strKeyName)
End If
End If

End Function

===========================================================
**** Write Config Values (NOT TESTED BUT SHOULD WORK) ****
===========================================================

Public Shared Function UpdateConfigValue(ByVal strConfigFilePath As String, ByVal strSectionName As String, _
ByVal strKeyName As String, ByVal strValue As String) As Boolean

Dim xmlDoc As New XmlDocument
Dim flag As Boolean = False

xmlDoc.Load(strConfigFilePath)

For Each node As XmlNode In xmlDoc.Item(strSectionName)

'Look for add attribute
If node.Name = "add" Then

'see if we have specified key in config file
If node.Attributes.GetNamedItem("key").Value = strKeyName Then

'Key found, upd
Title: value not updated   
Name: monaung
Date: 2009-05-10 2:44:36 AM
Comment:
if i am chaging the value in appReleaseSection in Cutom.Config file it is not reflecting. it gives me previous entered value why?
please can you mail me back how can i do this?
mon.aung@gmail.com
Title: config file not web.config/app.config   
Name: sixYo
Date: 2009-04-07 12:51:29 AM
Comment:
you can store the data in a xml file without web.config / app.config

http://www.codeproject.com/KB/aspnet/CustomXmlConfigForAspNet.aspx
Title: Little Change   
Name: ACostaF
Date: 2008-04-18 9:51:47 AM
Comment:
Good article. In order to MSDN Library suggestion, you must use System.Configuration.ConfigurationManager.GetSection instead of System.Configuration.ConfigurationSettings.GetConfig as ConfigurationSettings is obsolete.
Title: Need your help   
Name: Sukki
Date: 2008-03-01 12:17:10 PM
Comment:
it works well for me but when i try to add a subsection it fails. How can i handle this
Title: Good One   
Name: Rajesh
Date: 2007-07-24 6:16:13 AM
Comment:
Thanks Steven Archibald, this article was good and helped me a lot.

In addition to this, i wanted to use Release.xml file rather than Release.config file. Is the code works same for the .xml file?

Anticipating your response.

Rajesh
Title: Thank you!   
Name: Chris Bidwill
Date: 2007-05-23 10:27:30 PM
Comment:
Thanks, this was a huge help. From all the other posts I've found out there it looked like creating custom sections was a huge pain (so much it was easier just to parse the xml doc). This saved me a lot of frustration.
Title: Good Work   
Name: Satyam Kumar
Date: 2006-10-18 3:04:39 PM
Comment:
Thanks to aspalliance team.

Nice work done by team that i was looking for long time.

If any addition or Enhancement then pls let me know.

Satyam
satyam@rategain.com
Title: Custom.Config File   
Name: Satyadeep Behera
Date: 2006-06-16 4:57:48 AM
Comment:
after updating the Custom.config file can i able to get the
new values that has been saved at run time, i have dataaccess layer and i want to fix this value here.
please help me.
Title: Custom.Config File   
Name: Satyadeep Behera
Date: 2006-06-15 3:21:08 AM
Comment:
but is if i am chaging the value in appReleaseSection in Cutom.Config file it is not reflecting it gives me previous entered value why?
please can you mail me back how can i do this?
bsatyadeep@zilog.com






Community Advice: ASP | SQL | XML | Regular Expressions | Windows


©Copyright 1998-2024 ASPAlliance.com  |  Page Processed at 2024-04-16 11:16:16 AM  AspAlliance Recent Articles RSS Feed
About ASPAlliance | Newsgroups | Advertise | Authors | Email Lists | Feedback | Link To Us | Privacy | Search