Подтвердить что ты не робот

Установите приложение ConnectionString в настройке службы вместо web.config в Azure

У меня есть приложение в настоящее время в Azure, и всякий раз, когда мы вставляем его в сегмент Staging, мы не можем действительно тестировать, так как строка подключения указывает на базу данных prod.

Кто-то сказал мне, что вы должны установить строку подключения в файле ServiceConfiguration.cscfg вместо (или с) файла web.config. Таким образом, вы можете изменить строку соединения на портале Azure вместо публикации того приложения.

Кто-нибудь знает, как это сделать?

4b9b3361

Ответ 1

В файле ServiceConfiguration.cscfg добавьте:

<ServiceConfiguration ... />
  <Role ... />
    <ConfigurationSettings>
      <Setting name="DatabaseConnectionString" value="put your connection string here" />
    </ConfigurationSettings>
  </Role>
</ServiceConfiguration>

Теперь у вас есть строка соединения, которую вы можете изменить, отредактировав конфигурацию внутри лазурного портала.

Затем в любое время вам нужно восстановить строку подключения, которую вы можете сделать, используя:

using Microsoft.WindowsAzure.ServiceRuntime;

...

String connString = RoleEnvironment.GetConfigurationSettingValue("DatabaseConnectionString")

Вам может потребоваться добавить Microsoft.WindowsAzure.ServiceRuntime.dll к вашим ссылкам.

RoleEnviroment.IsAvailable можно использовать, чтобы проверить, запущены ли они в Azure, и если не вернуться к настройкам web.config.

using System.Configuration;
using Microsoft.WindowsAzure.ServiceRuntime;

...

if (RoleEnvironment.IsAvailable)
{
    return RoleEnvironment.GetConfigurationSettingValue("DatabaseConnectionString");
}
else
{
    return ConfigurationManager.ConnectionStrings["DatabaseConnectionString"].ConnectionString; 
}

В этой статье приведено более подробное объяснение выше.

Ответ 2

Для Entity Framework вам не нужно указывать имя поставщика, оно уже внутри в строке соединения. Причина, по которой он не работает, когда он находится в лазурных настройках, содержит символ "amp; quot", который необходимо перевести обратно на "перед созданием нового EntityConnection". Вы можете сделать это, используя HttpUtility.HtmlDecode в System.Web.

Ответ 3

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