ASP.NET MVC 4 Локальная база данных в базу данных SQL после публикации

StackOverflow https://stackoverflow.com/questions/19853779

  •  29-07-2022
  •  | 
  •  

Вопрос

Я построил интрасетиное приложение MVC 4, которое использует локальный DB для хранения информации. Теперь, когда я хочу развернуть его в записях сервера, не сохранения в базе данных. Я пробовал все, что я могу придумать, без повезло.

Есть ли способ дать приложение использовать базу данных SQL вместо локального экземпляра в IIS?

Это строка подключения в моем web.config

- РЕДАКТИРОВАТЬ: Отформатированный код ниже, чтобы он отобразился в вопросе. -

<add name="MyCalendarConnectionString" connectionString="Data Source=DST09119\SQLEXPRESS;Initial Catalog=MyCalendar;Integrated Security=True"
      providerName="System.Data.SqlClient" />
    <add name="SampleConnectionString" connectionString="Data Source=(LocalDB)\v11.0;AttachDbFilename=|DataDirectory|\Sample.mdf;Integrated Security=True"
      providerName="System.Data.SqlClient" />
Это было полезно?

Решение

Два способа сделать это:

  1. Назовите свою строку подключения после получения DbContext класс (т.е., если ты DbContext является XyzEntities, затем назовите свою строку conn XyzEntities <add name="XyzEntities" connectionString"..... />

  2. Передать имя строки подключения в базовый конструктор для DbContext. Анкет Вы хотите использовать конструктор, как ниже:

    public class XyzEntities : DbContext
    {
        public XyzEntities( string nameOrConnectionString ) 
            : base( nameOrConnectionString )
        {
        }
    }
    
    // usage
    var dbContext = new DerivedDbContext( "MyCalendarConnectionString" );
    

Обновлять:

Если вы просто не можете подключиться к экземпляру SQL Server Express, это связано с использованием Integrated Security=True - Если вы не установите идентификацию пула приложений пользователю, который имеет доступ к базе данных, подключению будет отказано.

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top