views:

643

answers:

2

I am writing an client application in C# which will be supposed to change ConnectionString settings in a web.config file from another application I wrote. How can I achieve this goal?

Is there a way to load the web.config file in my application and read/change its data object orientated? Or do I need to parse it as if beeing a complete 'unknown' XML file?

+2  A: 

If you're doing this from another application, you can use the VirtualDirectoryMapping class:

VirtualDirectoryMapping vdm = new VirtualDirectoryMapping(@"C:\Inetpub\wwwroot\YourApplication", true);
WebConfigurationFileMap wcfm = new WebConfigurationFileMap();
wcfm.VirtualDirectories.Add("/", vdm);


// Get the connectionString
Configuration config = WebConfigurationManager.OpenMappedWebConfiguration(wcfm, "/");
string connection = config.ConnectionStrings.ConnectionStrings["YourConnectionString"];
CMS
Works perfectly, thanks!
Marcus
You're welcome Marcus
CMS
A: 

I would use RMI to query the other application for the ConnectionString.

Scott Muc
I think you mean WMI :)
dotnetdev
No, I meant RMI (Remote Method Invocation). I guess it's called .Net Remoting these days and now is lumped in with the whole WCF stack.
Scott Muc