Voor een website project heb ik een setup gemaakt, waarin een connection string opgegeven kan worden. Het is de bedoeling om deze weg te schrijven in de Web.config van de site na het committen van de setup.
Dit probeer ik via de 'schonere' 2.0 manier te doen, dat wil zeggen met behulp van de WebConfigurationManager klasse. Het lukt me echter niet om dit voor elkaar te krijgen.
Als ik de config file open met:
Dan pakt hij de 'root Web.config' file; veranderingen die ik hierin doe en wegschrijf komen terecht in de windows .NET framework config directory.
Maar wanneer ik probeer de file te openen met bijvoorbeeld:
Dan krijg ik een exceptie dat "C:\inetpub\wwwroot\WebconfigtesterSetup\web.config is geen geldig virtueel pad.".
Static aanroepen via
Levert me de exceptie op 'De configuratie is alleen-lezen.'.
Hoe kan ik er voor zorgen dat hij het wel doet? Of zie ik iets over het hoofd en is dit gewoon niet mogelijk?
Noot: het gaat me voornamelijk om het achterhalen van de fout; ik heb namelijk ondertussen wel een oplossing gemaakt op de oude manier, namelijk de Web.config openen als XmlDocument, en wijzigingen hierin maken en opslaan; maar volgens mij was de ConfigurationManager juist geïntroduceerd om handmatig gepruts met XML te voorkomen
.
Dit probeer ik via de 'schonere' 2.0 manier te doen, dat wil zeggen met behulp van de WebConfigurationManager klasse. Het lukt me echter niet om dit voor elkaar te krijgen.
Als ik de config file open met:
C#:
1
| Configuration config = WebConfigurationManager.OpenWebConfiguration( null ); |
Dan pakt hij de 'root Web.config' file; veranderingen die ik hierin doe en wegschrijf komen terecht in de windows .NET framework config directory.
Maar wanneer ik probeer de file te openen met bijvoorbeeld:
C#:
1
2
3
4
5
6
7
| // Open web.config string folder = Context.Parameters[ "assemblypath" ]; // remove the 'bin\xxx.dll' part; folder = folder.Substring( 0, folder.LastIndexOf( @"\" ) ); folder = folder.Substring( 0, folder.LastIndexOf( @"\" ) ); string webConfigPath = folder +"\\web.config"; Configuration config = WebConfigurationManager.OpenWebConfiguration( webConfigPath ); |
Dan krijg ik een exceptie dat "C:\inetpub\wwwroot\WebconfigtesterSetup\web.config is geen geldig virtueel pad.".
Static aanroepen via
C#:
1
| WebConfigurationManager.ConnectionStrings.Add( new System.Configuration.ConnectionStringSettings( "webconfigTestConnectionString", connectionString ) ); |
Levert me de exceptie op 'De configuratie is alleen-lezen.'.
Hoe kan ik er voor zorgen dat hij het wel doet? Of zie ik iets over het hoofd en is dit gewoon niet mogelijk?
Noot: het gaat me voornamelijk om het achterhalen van de fout; ik heb namelijk ondertussen wel een oplossing gemaakt op de oude manier, namelijk de Web.config openen als XmlDocument, en wijzigingen hierin maken en opslaan; maar volgens mij was de ConfigurationManager juist geïntroduceerd om handmatig gepruts met XML te voorkomen
Alles wat ik zeg kan en zal tegen u gebruikt worden
Scream! Suffer! Panic! | Dark-future Dawnbringer | Unofficial Mordor community