Использование базы данных SQL Server .MDF в ASP.NET и использование SQL Server. - PullRequest
9 голосов
/ 13 апреля 2010

В настоящее время я пишу веб-сайт в ASP.NET MVC, и моя база данных (в которой еще нет данных, а есть только правильные таблицы) использует SQL Server 2008, который я установил в своей разработке машина. Я подключаюсь к базе данных из моего приложения с помощью обозревателя серверов, после чего выполняется сопоставление LINQ to SQL.

Как только я закончу разработку сайта, я перенесу его на свой хостинг, который является планом виртуального хостинга. Я обеспокоен тем, будет ли трудно использовать установку SQL Server, которая в настоящее время работает на моем компьютере разработчика, на рабочем сервере, поскольку мне придется импортировать все таблицы базы данных через панель управления хостингом.

Я заметил, что можно создать базу данных SQL Server из Visual Studio. Затем он сохраняется в каталоге App_Data.

Мои вопросы следующие:

  • Имеет ли смысл переместить мою БД SQL Server из SQL Server в каталог App_Data в виде файла .mdf?
  • Если так, как можно его переместить? Я считаю, что это называется Detach команда, не так ли?
  • Есть ли проблемы с производительностью / безопасностью , которые могут возникнуть с файлом .mdf, подобным этому?
  • Будет ли моя предполагаемая установка работать нормально с типичным планом виртуального хостинга ? Я надеюсь, что база данных .mdf не будет учитываться при ограниченном количестве баз данных SQL Server, которые могут быть созданы с помощью моего плана.

Надеюсь, этот вопрос не слишком широк. Заранее спасибо!

Примечание: я только начинаю с ASP.NET MVC и всего этого, так что я могу совершенно не понять, как это должно работать.

Ответы [ 4 ]

9 голосов
/ 13 апреля 2010

App_Data MDF - это база данных SQL Server, которая будет своевременно присоединена к экземпляру SQL Server. Единственный способ получить доступ к MDF - это подключиться к SQL Server. Visual Studio скрывает, что происходит за кулисами, но вы все еще используете экземпляр SQL Server. Это своевременное вложение MDF работает только в редакциях SQL Express. В SQL Express 2005 вы получите пользовательский экземпляр, см. Подключение к пользовательским экземплярам SQL Server Express (ADO.NET) . С SQL Express 2008 вы можете управлять тем, хотите ли вы получить экземпляр пользователя или присоединить его к экземпляру службы.

Вы должны будете проверить у своего хостинг-провайдера, чтобы подтвердить, считают ли они эту базу данных как одну базу данных в плане или нет. Следует помнить, что с точки зрения использования ресурсов присоединение базы данных с помощью строки подключения (что происходит при использовании параметра развертывания App_Data MDF) так же дорого, как и любой другой способ открытия и запуска базы данных, Я был бы очень удивлен, услышав, что они позволяют это и не учитывают количество баз данных, разрешенных в плане.

5 голосов
/ 13 апреля 2010

Все базы данных SQL Server являются .mdf файлами. Здесь хранятся файлы .mdf: * C: \ Program Files \ Microsoft SQL Server \ MSSQL \ Data * (расположение по умолчанию).

Вы правы, что вам пришлось бы отсоединить базу данных SQL от сервера, чтобы переместить базу данных в папку App_Data. Вы можете сделать это, щелкнув правой кнопкой мыши на базе данных в SSMS.

Преимущества перемещения базы данных в папку App_Data заключаются в следующем:

  1. База данных будет храниться там, когда она используется в рабочей среде, и вы будете подключать базу данных к SQL Server динамически при подключении к ней.
  2. Вы хотите опубликовать веб-сайт на своем сервере вместе с mdf-файлом в папке App_Data (что совпадает с первой причиной).
  3. Хранение всех файлов проекта в одном месте. Легко двигаться. Простое резервное копирование.

В вашем сценарии, когда вы будете загружать свою базу данных через пользовательскую панель управления, я не вижу никаких преимуществ в перемещении базы данных в папку App_Data. Когда вы публикуете сайт, вы можете просто отключить БД, взять файл mdf и загрузить его (у вашей панели управления могут быть другие способы импорта БД, например, сценарии SQL ...).

Чтобы ответить на ваши вопросы напрямую ...

Имеет ли смысл перенести мой SQL Сервер БД вне SQL Server и в каталог App_Data в формате .mdf файл

Я так не думаю.

Если так, как я могу переместить это?

Detach. Вы можете сделать это, щелкнув правой кнопкой мыши на базе данных в SSMS.

Есть ли производительность / безопасность проблемы, которые могут возникнуть с файлом .mdf как это?

Я не уверен насчет различий в безопасности, но, как уже упоминалось, вероятно, производительность выше, если база данных остается подключенной к SQL Server.

Будет ли моя намеченная установка работать нормально с Типичный план виртуального хостинга?

Вы должны проверить, считают ли они / позволяют базы данных sql динамически присоединяться.

Надеюсь, это поможет. Я не эксперт.

2 голосов
/ 13 апреля 2010

Не используйте App_Data для вашей базы данных. Это хорошо для некоторых быстрых «как» или прототип, но это не хорошо для производственного сервера. Это может причинить вам много хлопот во время технического обслуживания. Я использовал его один раз и никогда больше ...

Да, производительность. Потому что он всегда должен прикреплять БД. Не большая проблема, когда у вас крошечная сеть с несколькими посетителями в день.

Было бы лучше спросить у вашего хостинга, считают ли они это или нет.

0 голосов
/ 14 апреля 2010

Честно говоря, это может не отвечать на ваши вопросы напрямую, но я обнаружил, что способ, которым вы настраиваете его на хостинге (не локально), это перемещение / импорт вашей БД в вашу хостинговую компанию, которая затем даст вам строку подключения к вашему хост / дб. Как только вы «включитесь» (или протестируете, загрузив свой сайт на хост) - измените строку подключения на ту, которая предоставлена ​​вашим хостом, в вашем файле web.config. Это, вероятно, упрощено, но всегда работало для меня.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...