Переменные среды в файле ASP.NET web.config - PullRequest
4 голосов
/ 22 февраля 2012

Мне было интересно, почему я не могу использовать пользовательскую переменную среды в файле 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 # для подключения к базе данных, я получаю следующую ошибку:

Попытка присоединить базу данных с автоматическим именем для файла% MyProjectsFolder%Ошибка \ WebAppName \ App_Data \ Database1.mdf.База данных с тем же именем существует, или указанный файл не может быть открыт, или он находится на общем ресурсе UNC.

Ответы [ 3 ]

6 голосов
/ 22 февраля 2012

Переменные окружения нельзя использовать в файле конфигурации.

1 голос
/ 22 февраля 2012

Вы можете использовать: 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 голосов
/ 22 февраля 2012

Я не думаю, что вы пробовали:

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