Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/asp.net/35.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
ASP.NET web.config文件中的环境变量_Asp.net_Web Config_Environment Variables - Fatal编程技术网

ASP.NET web.config文件中的环境变量

ASP.NET web.config文件中的环境变量,asp.net,web-config,environment-variables,Asp.net,Web Config,Environment Variables,我想知道为什么不能像这样在ASP.NET web.config文件中使用自定义环境变量 <?xml version="1.0"?> <configuration> <connectionStrings> <add name="ConnectionName" connectionString="data source=.\SQLEXPRESS;Integrated Security=SSPI;AttachDBFilename='%MyProje

我想知道为什么不能像这样在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>

我通过Start->Run检查了.mdf文件的文件路径是否有效

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

尝试为文件附加自动命名的数据库 %MyProjectsFolder%\WebAppName\App\u Data\Database1.mdf失败。A. 存在同名数据库,或者无法创建指定的文件 已打开,或位于UNC共享上


我想你没有试过:

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

配置文件中不能使用环境变量。

您可以使用:DataDirectory,如下所示:

“Data Source = |DataDirectory|\Mydb.sdf”
您可以更改DataDirectory指向的位置:“要设置DataDirectory属性,请调用AppDomain.SetData”


注意,我从未尝试过此操作。

您可以看到数据库文件位于我的项目之外的其他项目中。您是否尝试过浏览该文件并在“数据连接”浏览器中选择它?我不想硬链接到它。这是因为此项目可能会被移动到另一台具有不同文件路径的计算机上或从另一台计算机上移动。它不是“硬链接”的。它在一个文本文件中。它可以编辑。还有其他使用相对路径的方法吗?问题是,如果您需要从某个配置文件中读取正确的目录来设置它,您最好修改web.config文件中的连接字符串。您使用的替代解决方案是什么?