2012-02-22 107 views
4

我想知道为什么我不能在ASP.NET web.config文件中使用自定义环境变量?ASP.NET web.config文件中的环境变量

<?xml version="1.0"?> 
<configuration> 
    <connectionStrings> 
    <add name="ConnectionName" connectionString="data source=.\SQLEXPRESS;Integrated Security=SSPI;AttachDBFilename='%MyProjectsFolder%\WebAppName\App_Data\Database1.mdf';User Instance=true" providerName="System.Data.SqlClient" /> 
    </connectionStrings> 
</configuration> 

我通过开始 - >运行检查到.mdf文件的文件路径是有效的。

当我运行我的C#代码连接到数据库,会出现以下错误:

An attempt to attach an auto-named database for file %MyProjectsFolder%\WebAppName\App_Data\Database1.mdf failed. A database with the same name exists, or specified file cannot be opened, or it is located on UNC share.

+0

您使用的备用解决方案是什么? – 2017-01-21 01:47:33

回答

5

环境变量在配置文件中。

+0

任何其他方式使用相对路径? – ahmd0 2012-02-22 01:52:47

0

我不认为你已经试过:不得使用

connectionString="data source=.\SQLEXPRESS;Integrated Security=SSPI;AttachDBFilename='~/App_Data/Database1.mdf';User Instance=true" 
+0

您会看到数据库文件位于除我以外的项目中。 – ahmd0 2012-02-22 01:36:46

+0

您是否试过浏览并在“数据连接”浏览器中选择它? – pete 2012-02-22 01:57:31

+0

我不想硬链接到它。原因是因为这个项目可能会被移到另一台具有不同文件路径的计算机上和从另一台计算机移出。 – ahmd0 2012-02-22 02:03:13

1

您可以使用:DataDirectory目录是这样的:

“Data Source = |DataDirectory|\Mydb.sdf” 

,你可以改变其中DataDirectory目录点: “要设置DataDirectory属性,调用AppDomain.SetData”

http://social.msdn.microsoft.com/Forums/en/sqlce/thread/dc31ea59-5718-49b6-9f1f-7039da425296

买者,我从来没有试过这个。

+0

谢谢。有点笨重,涉及代码隐藏,但应该工作... – ahmd0 2012-02-22 06:10:01

+0

事情是,如果您需要从某个配置文件中读取正确的目录来设置它,那么您可能只需修改网络中的连接字符串即可。配置文件。 – 2012-02-22 12:47:46