2013-08-26 2 views
2

У меня есть решение ASP.NET MVC4, которое я развертываю на Azure. Это решение подключается к базе данных SQL.Как использовать разные базы данных для локального и облачного исполнения

Я хотел бы знать, если решение может быть настроен таким образом, что, когда я запустить его на моей локальной машине (то есть в то время как developping/отладки) он использует локальную базу данных с , и, когда он работает в облаке (т.е. на Azure) используется база данных облаков.

Я знаю, что такая конфигурация возможна для строк подключения учетной записи хранилища (blob, queue), но до сих пор мне не удалось найти эквивалент для строки подключения к базам данных.

Спасибо всем, кто готов помочь мне в этом.

ответ

2

Вам просто нужно настроить файл web.config для настройки правильной строки подключения. Для локальной базы данных вам просто нужно что-то вроде этого:

<add name="DefaultConnection" connectionString="Data Source=(LocalDb)\v11.0;Initial Catalog=mydb;Integrated Security=SSPI;AttachDBFilename=|DataDirectory|\mydbmdf" providerName="System.Data.SqlClient" /> 

Затем добавить файл web.Release.config где вы будете использовать оператор преобразования, чтобы изменить строку подключения, как это.

<connectionStrings> 
    <add name="DefaultConnection" connectionString="Data Source=xxx.database.windows.net,1433;Initial Catalog=xxx;User [email protected];Password=xxx;" providerName="System.Data.SqlClient" xdt:Transform="Replace"/> 
</connectionStrings> 

и все готово.

+0

, это именно то, что мне нужно. большое спасибо! –

0

Если вы используете PaaS Cloud Services, вы можете указать отдельные файлы cscfg (local, dev, prod). Когда вы запускаете локально через эмуляторы, вы будете использовать «локальную» версию. Затем при развертывании в облаке вы можете использовать другую версию.

Если мы говорим о веб-сайтах или IaaS, то наиболее распространенным подходом, который я видел, является способ обнаружения среды (локальной или хостинга), в которой вы работаете. Обычно на основе либо машины имя (менее распространенное) или URI запроса (довольно распространенный). Затем в вашем коде вы используете соответствующий параметр конфигурации строки подключения для среды, в которой вы работаете.

+0

благодарит за вашу помощь. * .cscfg - это то, что мы используем для предоставления разных параметров, связанных с учетной записью хранилища, но я не мог найти способ использовать их для решения моей проблемы. Решение @Whirly (атрибут transform в web.Release.config/web.Debug.config) работает как шарм –

Смежные вопросы