Строка подключения к удаленной БД при использовании EntityFramework

У меня есть приложение ASP.NET MVC, и я использую EntityFramework 5.0. Я также установил пакет «CodeFirstMembershipProvider» Nuget, который предоставил некоторый код для членства в ASP.NET, и, я считаю, также внес изменения в мой web.config.

В основном, моя проблема заключается в том, что мое приложение отлично работает на локальном экземпляре SQL Server, но когда я указываю удаленный БД, используя эту строку соединения:

<add name="DefaultConnection" providerName="System.Data.SqlClient" connectionString="Data Source=*******************, 14330;Integrated Security=False;Database=qrcodetr_database;Uid=qrcodetr_admin;Password=*********; Connect Timeout=15;Encrypt=False;Network Library=dbmssocn;Packet Size=4096" /> 

(пароль и имя хоста отредактированы)

он не может использовать эту строку соединения. Он по-прежнему пытается вместо этого использовать локальный экземпляр SQL Server, поэтому он работает локально, но когда я пытаюсь запустить его на моем веб-узле и в узле базы данных, он терпит неудачу – поскольку он пытается использовать локальный экземпляр SQL-сервера, который он не может выполнить в моей базе данных хост. Пульт удаленной базы данных использует SQL Server 2008 R2.

Кто-нибудь знает, почему это может быть или что я могу сделать, чтобы решить эту проблему?

Я не буду публиковать весь web.config, но вот несколько строк, которые могут иметь значение:

 <add key="DatabaseInitializerForType TreasureHuntDB, QrCodeTreasureHunter" value="DataContextInitializer, QrCodeTreasureHunter" 
 <sessionState mode="InProc" customProvider="DefaultSessionProvider"> <providers> <add name="DefaultSessionProvider" type="System.Web.Providers.DefaultSessionStateProvider, System.Web.Providers, Version=1.0.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35" connectionStringName="DefaultConnection" /> </providers> </sessionState> <membership defaultProvider="CodeFirstMembershipProvider"> <providers> <add name="CodeFirstMembershipProvider" type="CodeFirstMembershipProvider" connectionStringName="DefaultConnection" /> </providers> </membership> <roleManager enabled="true" defaultProvider="CodeFirstRoleProvider"> <providers> <clear /> <add name="CodeFirstRoleProvider" type="CodeFirstRoleProvider" connectionStringName="DefaultConnection" /> </providers> </roleManager> 
  <entityFramework> <defaultConnectionFactory type="System.Data.Entity.Infrastructure.SqlConnectionFactory, EntityFramework" /> </entityFramework> 

Кстати, я могу успешно подключиться к удаленной БД через SQL Server 2008, поэтому проблема определенно кажется проблемой конфигурации на моем конце.

Кстати, я использую DataContextInitializer, который настроен на «CreateDatabaseIfNotExists». Я установил это для этого, потому что в размещенной базе данных у меня нет разрешений для CREATE или DROP базы данных, поэтому я сделал это, создав резервную копию одного из локально созданных (в SQL Server Express ) и использовал функцию восстановления для восстановления файла в моей размещенной базе данных. Поэтому у меня есть база данных, она просто не будет работать с моим приложением.

Кажется, вы не указываете EF имя строки подключения, поэтому просто создаете ее по соглашению. Вы можете передать имя в DbContext ctor в форме "Name=DefaultConnection" или переименовать строку подключения в своей конфигурации, чтобы ее имя совпадало с именем производного класса DbContext.

Этот вопрос и ответ подсказывают, что ваша строка строки подключения должна выглядеть так:

 <connectionStrings> <clear /> <!--- need this to prevent using LocalSqlServer from machine.config or somewhere becouse it is not present when when publish to hosting --> <add name="DefaultConnection" providerName="System.Data.SqlClient" connectionString="etc" /> </connectionStrings> 
  • Импорт типов объектов инфраструктуры Entity сбрасывается при обновлении модели из базы данных
  • Сначала создайте базу данных Entity Framework, в представлениях есть несколько EntityKey
  • Entity Framework не может импортировать хранимую процедуру, выполняющую FTS
  • Почему Entity Framework игнорирует мою строку подключения?
  • Сохраненная процедура с выходными параметрами возвращает -1 в c #
  • Как переключиться на datetime2 в проекте Enitity Framework / SQL Server 2008
  • Результаты запроса Entity Framework 5.0 отличаются от прямого SQL-запроса в базе данных
  • Вкладыши становятся все более медленными с течением времени?
  • Отображение 1 до 0-1 в структуре объектов
  • Как получить Max Id из базы данных, когда таблица базы данных пуста?
  • Миграция платформы Entity - изменение свойства DataType
  • Interesting Posts

    Заявление о случаях с группировкой

    Оператор SQL Charindex vs LIKE

    Почему я не могу вставить десятичную дробь в таблицу сервера sql?

    Создание упрощенных версий базы данных на другом сервере

    Авторизация на основе назначенной функции разрешения

    Отображение объекта Entity Framework объекта, содержащего список одинаковых объектов

    Использование нескольких временных таблиц в Delphi с подключением ADO к базе данных приводит к ошибкам

    SQL Server полностью замедляется после заполнения полной памяти

    Предложите несколько альтернатив интенсивной операции CURSOR в SQL Server 2005

    Как хранить данные в таблице как trie? (SQL Server)

    автоматическое изменение схемы выбора базовой таблицы для просмотра

    Почему Entity Framework (EF 6.0) генерирует представление, а не таблицу для связывания таблиц, из-за чего вставки не работают?

    Используйте разные записи из одной таблицы, чтобы объединить их с разными записями других

    SQL Best Practices для жесткого кодирования значения Identity

    Выберите строки, используя in с параметром строки, разделенным запятыми

    Давайте будем гением компьютера.