ASP.NET MVC новичок: не удается заставить aspnet_regsql.exe работать - PullRequest
4 голосов
/ 27 июня 2009

Я только что установил Web Developer Express 2008 и инфраструктуру MVC (следуя всем настройкам по умолчанию, в процессе был установлен SQL Server Express). Я выполнил начальные NerdDinner шаги, создал базу данных из IDE и определил таблицы (работал нормально).

Для дальнейшего определения моих таблиц, которые в значительной степени зависят от пользовательской базы, мне пришлось выяснить, как добавить пользовательские таблицы в мою вновь созданную базу данных (чтобы я мог создавать таблицы с внешними ключами для таблицы пользователей), поэтому я «перепрыгнул» в раздел аутентификации и авторизации в руководстве, где они упомянули, что мне нужно запустить «aspnet_regsql.exe» из каталога «C: \ WINDOWS \ Microsoft.NET \ Framework \ v2.0.50727».

Я нашел файл и запустил его.

Он запрашивает имя сервера и имеет некоторое значение по умолчанию (это инициализация имени моего компьютера). Я не помню, чтобы в процессе установки Visual Web Developer упоминалось какое-либо такое имя, я предполагаю, что оно используется по умолчанию. «Аутентификация Windows» выбрана. Я также могу выбрать «Аутентификация на SQL-сервере», но я не помню, чтобы для нее требовались имя пользователя и пароль.

Когда я выбираю базу данных, я щелкаю раскрывающийся список со списком «База данных», это занимает несколько секунд и выдает следующее сообщение об ошибке:

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

Я исследовал это онлайн и не нашел простого решения моей, казалось бы, тривиальной проблемы.

Для пояснения, я не хочу удаленное соединение, а скорее локальное.

Есть ли какие-либо шаги, которые мне нужно выполнить с моей локальной установкой SQL Server Express, прежде чем я смогу продолжить процесс regsql?

Это простая ваниль, из коробки установки ... Есть идеи?

Ответы [ 4 ]

7 голосов
/ 14 февраля 2010

Если вы хотите продолжить использовать мастера, это на самом деле очень простое решение. На экране «Выбор сервера и базы данных», где вы получаете эту проблему, значение по умолчанию в текстовом поле «сервер» будет установлено на имя вашего компьютера. Добавьте конкретный экземпляр SQL-сервера, к которому вы хотите подключиться (т. Е. LOCALHOST может стать LOCALHOST \ SQLEXPRESS).

Если вы укажете действительный экземпляр, раскрывающийся список «База данных» будет заполнен, как и ожидалось.

6 голосов
/ 27 июня 2009

Во-первых, скопируйте резервную копию вашего файла MDF на случай, если эта команда полностью откажется от вашей работы. Попробуйте это: aspnet_regsql -A all -C "Data Source=.\SQLEXPRESS;Integrated Security=True;User Instance=True" -d "PATH_TO_MY_DATABASE.MDF_FILE"

Измените PATH_TO_MY_DATABASE.MDF_FILE на полный путь к вашему файлу MDF. Скорее всего, он находится в вашей папке APP_DATA.

Эта информация взята из этого сообщения в блоге , и я успешно использовал его в прошлом для настройки таблиц членства для проекта SQL Server Express с файловой базой данных MDF.

1 голос
/ 27 июня 2009

Вы можете посмотреть, как запустить aspnet_regsql для SQL Express (об этом много постов в блоге). В прошлом у меня были проблемы с его работой (возможно, не повезло), но вы также можете сделать это:

  1. запустить приложение MVC после создания проекта
  2. щелкните ссылку «Вход в систему», затем зарегистрируйте новую учетную запись (это создаст для вас базу данных SQL Express)
  3. (необязательно, но удобно :) в VS, добавьте файл MDF в проект (он находится в App_Data)
  4. (необязательно :) переименуйте файл MDF и обновите строки подключения в web.config (замените aspnetdb.mdf на NerdDinner.mdf или любое другое имя, которое вы выбрали)

Хромой обходной путь, я знаю, но он заставит вас работать без лишних хлопот.

1 голос
/ 27 июня 2009

Эта проблема вообще не связана с asp.net mvc, это чисто проблема с базой данных.

Из того, что вы описали.

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

Я бы удостоверился:

1> sql express запущен. 2> какой протокол вы устанавливаете для подключения. Я обычно выбираю tcp / ip.

Надеюсь, это поможет.

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