ASP.NET Web.config中的相对路径

时间:2009-07-27 10:06:32

标签: asp.net

我的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" />

指的是一个EntityFramework实例,它映射位于应用程序的App_Data目录中的sqlite数据库。

如何使链接相对,以便在生产环境中部署更容易?

由于

3 个答案:

答案 0 :(得分:6)

你不能使用“| DataDirectory |”在连接字符串(而不是C:... \ App_Data)? E.g:

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

我知道这适用于部署在应用程序的app_data文件夹中的SQL Server Express数据库。但我不知道这是否适用于Entity Framework / SQLite。

答案 1 :(得分:6)

你试过吗

<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" />

<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" />

答案 2 :(得分:0)

我假设你在谈论这一点

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

相反,试试这个

../../App_Data/monitor.sqlite

(不确定'../'的数量,但你明白了     ../../ App_Data文件/ monitor.sqlite