2009-07-27 20 views
3

Ich habe den folgenden Tag in meiner ASP.NET Web.config Anwendung:Relativer Pfad in ASP.NET Web.config

<add name="monitorEntities" connectionString="metadata=res://*/Models.MonitorDB.csdl|res://*/Models.MonitorDB.ssdl|res://*/Models.MonitorDB.msl;provider=System.Data.SQLite;provider connection string='data source=&quot;C:\Documents and Settings\jdoe\Desktop\LcdManager\LcdManager\App_Data\monitor.sqlite&quot;'" providerName="System.Data.EntityClient" /> 

, die auf eine EntityFramework Instanz bezieht sich die Zuordnung ein sqlite db in App_Data befand Verzeichnis die Anwendung.

Wie kann ich die Verknüpfung relativ machen, so dass die Bereitstellung in einer Produktionsumgebung einfacher ist?

Dank

Antwort

5

Haben Sie

<add name="monitorEntities" connectionString="metadata=res://*/Models.MonitorDB.csdl|res://*/Models.MonitorDB.ssdl|res://*/Models.MonitorDB.msl;provider=System.Data.SQLite;provider connection string='data source=&quot;./App_Data/monitor.sqlite&quot;'" providerName="System.Data.EntityClient" /> 
versucht

oder

<add name="monitorEntities" connectionString="metadata=res://*/Models.MonitorDB.csdl|res://*/Models.MonitorDB.ssdl|res://*/Models.MonitorDB.msl;provider=System.Data.SQLite;provider connection string='data source=&quot;|DataDirectory|/monitor.sqlite&quot;'" providerName="System.Data.EntityClient" /> 
+0

der zweite funktioniert, danke – pistacchio

+0

gleich. | DataDirectory |/file.db3 hat für mich funktioniert. Danke – Nathan

6

Können Sie nicht verwenden "| Datadirectory |" in der Verbindungszeichenfolge (anstelle von C: ... \ App_Data)? Z. B:

connectionString="... |DataDirectory|\monitor.sqlite ..." 

Ich weiß, das für SQL Server Express-Datenbanken arbeitet, die im Ordner App_Data der Anwendung bereitgestellt werden. Aber ich weiß nicht, ob dies für Entity Framework/SQLite funktioniert.

+0

Geht das, wenn auf einem Server aufgebaut und zum anderen zum Einsatz? –

+0

Solange sich Ihre Datenbank im Ordner App_Data der bereitgestellten Anwendung befindet. – M4N

+0

doh! ja web.config nicht kompiliert, duh me :-(; Das ist wohl der richtige Weg, es dann zu tun, nicht meine Antwort. –

0

Ich nehme an, Sie sprechen über dieses Bit

C:\Documents and Settings\jdoe\Desktop\LcdManager\LcdManager\App_Data\monitor.sqlite 

stattdessen versuchen, diese

../../App_Data/monitor.sqlite 

(nicht sicher über die Zahl der '../', aber Sie bekommen die Idee . ./../App_Data/monitor.sqlite

+0

nein, das funktioniert nicht. – Yar