[asp.net] relatief pad naar database in connectionstring?

Pagina: 1
Acties:

  • _Thanatos_
  • Registratie: Januari 2001
  • Laatst online: 27-11 10:50

_Thanatos_

Ja, en kaal

Topicstarter
Ik heb een asp.net applicatie met de connectionstring netjes in de web.config. Werkt allemaal prima, totdat ik besluit dat de website op de live server natuurlijk ergens anders staat, en de database natuurlijk ook. Het gaat om een Access (Jet) database en daarmee gebruik ik dus de OleDb provider. Dat betekent dat de connectionstring een parameter "Data Source" met als waarde het absolute pad naar de database vereist:
XML:
1
2
3
4
<connectionStrings>
  <clear/>
  <add name="LocalAccessDatabase" connectionString="Provider=Microsoft.Jet.OLEDB.4.0; Data Source=D:\Source\SKSW\App_Data\Database.mdb;" providerName="System.Data.OleDb"/>
</connectionStrings>

Dit werkt natuurlijk prima, maar ik wil eigenlijk dat ie automagisch een Server.MapPath eroverheen gooit, zodat ik netjes "~/App_Data/Database.mdb" erin kan plempen. Ik heb al een algoritme om dit te doen enzo, maar begrijp niet waar ik de nieuwe connectionstring dan laat. In Application_Start() probeerde ik ConfigurationManager.ConnectionStrings["LocalAccessDatabase"].ConnectionString te zetten, maar dat is readonly (waarom is de property zelf dan read/write :?) in runtime. Hetzelfde geldt voor ConfigurationManager.ConnectionStrings.Add(...);

Hoe zorg ik er nou voor dat ik een relatief pad naar de database kan gebruiken, en tegelijkertijd ConfigurationManager.ConnectionStrings kan blijven gebruiken :?

日本!🎌


  • TeeDee
  • Registratie: Februari 2001
  • Laatst online: 14:04

TeeDee

CQB 241

Uh, je kan toch ook het volgende doen:
C#:
1
Server.Mappath(ConfigurationManager.ConnectionStrings["LocalAccessDatabase"].ToString());

Dan kan toch gewoon? Of ik moet je helemaal verkeerd begrijpen.
_Thanatos_ schreef op vrijdag 26 januari 2007 @ 16:38:
Vertel dat maar es aan een DataSource object...
Excuus, niet goed gelezen ;)

[ Voor 30% gewijzigd door TeeDee op 26-01-2007 16:42 ]

Heart..pumps blood.Has nothing to do with emotion! Bored


  • _Thanatos_
  • Registratie: Januari 2001
  • Laatst online: 27-11 10:50

_Thanatos_

Ja, en kaal

Topicstarter
Vertel dat maar es aan een DataSource object...

日本!🎌


  • TeeDee
  • Registratie: Februari 2001
  • Laatst online: 14:04

TeeDee

CQB 241

Uit de MSDN(even ctrl-f op relative):

Je zal in je .config het absolute pad moeten vervangen met |DataDirectory|.
code:
1
2
Provider=Microsoft.Jet.OLEDB.4.0;User Id=admin;Password=;
Data Source=|DataDirectory|\Northwind.mdb

Volgens deze blogpost moet het werken.

[ Voor 49% gewijzigd door TeeDee op 26-01-2007 16:49 ]

Heart..pumps blood.Has nothing to do with emotion! Bored


  • lier
  • Registratie: Januari 2004
  • Laatst online: 15:43

lier

MikroTik nerd

Maar je plaatst het toch juist in je config file om eenvoudig aan te kunnen passen ? Dit zou je zelfs in een setup project als parameter kunnen uitvragen.

Eerst het probleem, dan de oplossing


  • TeeDee
  • Registratie: Februari 2001
  • Laatst online: 14:04

TeeDee

CQB 241

lier schreef op vrijdag 26 januari 2007 @ 16:49:
Maar je plaatst het toch juist in je config file om eenvoudig aan te kunnen passen ? Dit zou je zelfs in een setup project als parameter kunnen uitvragen.
[lompe gebruiker]
"Uhm, wat houdt C:\program files\_Thanatos_ Inc.\ApplicationName\App_Data\acces.mdb in?"
"En waar moet ik het in wijzigen?"
[/lompe gebruiker]
PM voor mijn adresgegevens > kratje bier ;)
lier schreef op vrijdag 26 januari 2007 @ 16:56:
[...]

Lang leve NTFS en rechten !
Mono, win98. Ik kan de gedachte van _Thanatos_ begrijpen.

[ Voor 30% gewijzigd door TeeDee op 26-01-2007 16:57 ]

Heart..pumps blood.Has nothing to do with emotion! Bored


  • _Thanatos_
  • Registratie: Januari 2001
  • Laatst online: 27-11 10:50

_Thanatos_

Ja, en kaal

Topicstarter
TeeDee _/-\o_

Het is trouwens niet zozeer de boedling dat een gebruiker het installeert, maar dat we gewoon de website op de live server kunnen plempen, zonder iets in de web.config te hoeven rommelen (met als gevaar dat een volgende upload em weer overschrijft).

[ Voor 90% gewijzigd door _Thanatos_ op 26-01-2007 16:58 ]

日本!🎌


  • lier
  • Registratie: Januari 2004
  • Laatst online: 15:43

lier

MikroTik nerd

TeeDee schreef op vrijdag 26 januari 2007 @ 16:54:
[...]

[lompe gebruiker]
"Uhm, wat houdt C:\program files\_Thanatos_ Inc.\ApplicationName\App_Data\acces.mdb in?"
"En waar moet ik het in wijzigen?"
[/lompe gebruiker]
Lang leve NTFS en rechten !
:O

Probeer eens een web.config te lezen, laat staan aan te passen !
Als je dat lukt, shoot the systeembeheerder...

[ Voor 28% gewijzigd door lier op 26-01-2007 16:58 ]

Eerst het probleem, dan de oplossing


  • _Thanatos_
  • Registratie: Januari 2001
  • Laatst online: 27-11 10:50

_Thanatos_

Ja, en kaal

Topicstarter
Hoezo systeembeheerder? de systeembeheerder maakt de machine.config, de webontwikkelaar (ik) maakt de web.config ;)

日本!🎌


  • gorgi_19
  • Registratie: Mei 2002
  • Laatst online: 16:00

gorgi_19

Kruimeltjes zijn weer op :9

_Thanatos_ schreef op vrijdag 26 januari 2007 @ 17:07:
Hoezo systeembeheerder? de systeembeheerder maakt de machine.config, de webontwikkelaar (ik) maakt de web.config ;)
Je kan toch bepaalde secties uit de web.config in een apart .config bestand plaatsen en hiernaar verwijzen uit de web.config? :)

Digitaal onderwijsmateriaal, leermateriaal voor hbo


  • 4of9
  • Registratie: Maart 2000
  • Laatst online: 13-12-2024
gorgi_19 schreef op vrijdag 26 januari 2007 @ 21:44:
[...]

Je kan toch bepaalde secties uit de web.config in een apart .config bestand plaatsen en hiernaar verwijzen uit de web.config? :)
Daar zitten ook weer nadelen aan. Bij wijzigingen in dat bestand zul je de site handmatig moeten resetten om de wijziging door te voeren terwijl de webconfig dit automatisch voor je regelt.

* 4of9 moet eerst goed lezen dan pas blaten

[ Voor 7% gewijzigd door 4of9 op 27-01-2007 11:22 ]

Aspirant Got Pappa Lid | De toekomst is niet meer wat het geweest is...


  • gorgi_19
  • Registratie: Mei 2002
  • Laatst online: 16:00

gorgi_19

Kruimeltjes zijn weer op :9

4of9 schreef op zaterdag 27 januari 2007 @ 11:21:
[...]


Daar zitten ook weer nadelen aan. Bij wijzigingen in dat bestand zul je de site handmatig moeten resetten om de wijziging door te voeren terwijl de webconfig dit automatisch voor je regelt.

* 4of9 moet eerst goed lezen dan pas blaten
Klopt, aan de andere kant maakt het XCOPY-deployment weer een stuk makkelijker en als het goed is hoef je de web.config niet vaak aan te passen. :)

Digitaal onderwijsmateriaal, leermateriaal voor hbo

Pagina: 1