Строка подключения MVC 3 к Sql Server 2008 R2 не может подключиться - PullRequest
1 голос
/ 13 января 2012

У меня есть проект MvcMovie, и я просто добавил строку подключения, чтобы перейти к моей версии Sql Server 2008 R2 для класса под названием Articles.

Я получаю ошибку.

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

Все, что я добавил в проект 1. строка подключения.

<connectionStrings>
    <add name="ArticleDB" connectionString="Data Source=Home-PC\SqlServer2008;initial catalog=DairyPump3;integrated security=SSPI" providerName="System.Data.SqlClient"/>
  </connectionStrings>
  1. Класс под названием Article

    public class Article
    {
        public int ID { get; set; }
        public string Menu { get; set; }
        public string Page { get; set; }
        //public DateTime ReleaseDate { get; set; }
        public string Content { get; set; }
        //public decimal Price { get; set; }
    }
    
    public class ArticleDBContext : DbContext
    {
        public ArticleDBContext() : base("ArticleDB") { }
    
        public DbSet<Article> Articles { get; set; }
    }
    
  2. ArticlesController, ссылающийся на EF и т. Д.

У меня есть Sql Server tcp, включены каналы и т. Д., И я разрешаю удаленные подключения. Я попытался сначала создать базу данных, а затем удалить ее, но без разницы. Насколько я знаю, я не использую Code First - по крайней мере, я не хочу сначала использовать Code. Приложение работает на стороне MvcMusic, но в конфигурационном файле для этого нет строки подключения - я не знаю, где хранятся музыкальные данные.

Я гуглил это, и многие сталкивались с проблемой, но их решения, похоже, не решают эту проблему.

Спасибо

1 Ответ

0 голосов
/ 13 января 2012

Используемая вами перегрузка конструктора заключается в указании строки подключения («Источник данных = ...») или имени базы данных в экземпляре SQL по умолчанию (например, «Начальный каталог = ArticleDb »). ,

Если вы называете строку подключения ArticleDBContext (или ваш контекст ArticleDB), она должна использовать указанную вами строку подключения, и вам также не нужен конструктор.

Примечание: я быстро подтвердил это, используя EF CF с миграциями. Когда я использовал : base("foo"), я увидел новую базу данных с именем foo. \ SQLEXPRESS (экземпляр по умолчанию, используемый EF). Мои наблюдения также, похоже, подтверждаются здесь .

[edit:] Также стоит указать: когда я использовал конструктор (с : base("foo)"), он отменял настройки, которые я имел в web.config. Вероятно, это не то, что вам нужно делать, если вы развертываете на сервере, где вам нужно настроить строку подключения.

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