MVC 3 ASPNETDB.MDF SqlExpress Строка подключения к базе данных на веб-хостинге - PullRequest
3 голосов
/ 22 июля 2011

Я думаю, что это больше проблема со строкой подключения, чем в MVC 3, поэтому заранее извините.

Я создал веб-сайт в MVC 3 с базой данных по умолчанию, которая создается при регистрации нового пользователя. Он отлично работает локально, но не на моем веб-хостинге, где я получаю следующую ошибку:

При установлении соединения с SQL Server произошла ошибка, связанная с сетью или экземпляром. Сервер не найден или не был доступен. Убедитесь, что имя экземпляра указано правильно и что SQL Server настроен для разрешения удаленных подключений. (поставщик: сетевые интерфейсы SQL, ошибка: 26 - ошибка при поиске сервера / указан экземпляр)

Строки подключения по умолчанию:

<connectionStrings>
    <add name="ApplicationServices" connectionString="data source=.\SQLEXPRESS;Integrated Security=SSPI;AttachDBFilename=|DataDirectory|aspnetdb.mdf;User Instance=true"
  providerName="System.Data.SqlClient" />
    <add name="ASPNETDBConnectionString" connectionString="Data Source=.\SQLEXPRESS;AttachDbFilename=|DataDirectory|\ASPNETDB.MDF;Integrated Security=True;User Instance=True"
  providerName="System.Data.SqlClient" />

Должен ли я указать строку подключения с явным IP-адресом сервера или сохранить команду. \ SQLEXPRESS? Если мне нужно указать имя пользователя и пароль, что мне следует использовать? Я никогда раньше не использовал локальную базу данных SQLExpress, поэтому я не в курсе (что, я уверен, очевидно).

Ответы [ 3 ]

2 голосов
/ 22 июля 2011

Если вы не можете использовать SQL Express, вы можете рассмотреть встроенный SQL Engine:

SQL Compact Edition или SQLLite

I 'Мы никогда не использовали SQL CE, но SQLLite - это всего лишь одна DLL.

Очевидно, что вы не обладаете всеми функциями полноценного механизма баз данных, но они все еще довольно мощные.

1 голос
/ 24 ноября 2011

Вам, вероятно, нужно следовать этой статье?

http://www.asp.net/mvc/tutorials/authenticating-users-with-forms-authentication-cs

По умолчанию ".net" устанавливает службы приложений в "AttachDBFilename = | DataDirectory | aspnetdb.mdf"

Затем вы создаете свою собственную БД, и теперь вы используете две БД для хранения данных, которые могут быть просто в одной.

Если вы прочитаете вышеупомянутую статью, она покажет вам, как объединить все в одну БД.

Когда вы развертываете на хост-сервере (и у него есть ограничение на количество БД, которые вы можете использовать или даже не используете sqlexpress), ни БД не присоединяется. Таким образом, вам нужно создать «файл преобразования» для вашего файла web.config (обычно это Debug and Release), который по сути является другим web.config, но только со строками конфигурации, которые необходимо изменить при развертывании сайта на хостинге. сервер.

Таким образом, ваш хостинг-провайдер предоставит вам информацию, необходимую для строки подключения на сервере. Затем вы помещаете это в файл «web.config.release», и когда вы компилируете и публикуете «релизную» версию своего сайта, вы получите файл web.config, в котором содержатся правильные данные строки подключения.

1 голос
/ 22 июля 2011

Как правило, вам нужно использовать строку подключения с определенным IP-адресом, именем пользователя, паролем и т. Д.

С кем вы хостингуете?Как правило, поставщик хоста .net предоставит вам строку подключения, которая будет использоваться для подключения к вашей базе данных.Вы можете скопировать и вставить в ваш web.config.Кроме того, когда они создают базу данных для вас, они обычно указывают имя пользователя, пароль и имя базы данных, поэтому вам придется все это изменить.

Это Visual Studio с Web.config.debug и Web.config.Release с преобразованиями xml.Таким образом, когда вы публикуете на сайте, строка подключения автоматически изменяется с локальной строки подключения на строку подключения, используемую в вашей производственной среде.

...