Как настроить IIS 10 для чтения из файла локальной базы данных SQL?

Я пытался развернуть исходное веб-приложение ASP .NET с использованием шаблона MVC с аутентификацией через локальный файл базы данных SQL. Пока я могу заставить его работать на моем компьютере. Когда я публикую его в папке на удаленном сервере, я не могу понять, как настроить IIS 10 для чтения из файла локальной базы данных SQL, сохраненного в его подкаталоге App_Data. В результате я получил следующую ошибку:

Ошибка сетевых интерфейсов SQL 52 - Невозможно найти установку локальной базы данных во время выполнения. Убедитесь, что SQL Server Express правильно установлен и включена функция локального выполнения базы данных.

Я пытаюсь устранить проблему, установив SQL Server 2012 Express на удаленный сервер, но проблема все еще существует. Поэтому я полагаю, что проблема может быть в строке подключения:

Источник данных =(LocalDb)\MSSQLLocalDB;AttachDbFilename=|DataDirectory|\aspnet-WebApplication1-20180923034052.mdf; Начальный каталог =aspnet-WebApplication1-20180923034052; Интегрированная безопасность =True" providerName="System.Data.SqlClient

Выше, что у меня на компьютере. Поскольку я настраиваю SQL-сервер по умолчанию на удаленном сервере, я полагаю, что должен сопоставить имя ядра базы данных SQL-сервера, которое по умолчанию является MSSQLSERVER, как показано ниже. Это тоже не сработало.

Источник данных =.\MSSQLSERVER;AttachDbFilename=|DataDirectory|\aspnet-WebApplication1-20180923034052.mdf; Начальный каталог =aspnet-WebApplication1-20180923034052; Интегрированная безопасность =True" providerName="System.Data.SqlClient

Какой конфигурации мне не хватает, чтобы заставить работать это простое веб-приложение ASP .NET?

1 ответ

Решение

Для того чтобы строка подключения по умолчанию, созданная вместе с проектом, работала, вам необходимо установить SQL Server LocalDB на удаленном сервере. Это отдельная установка от основной. Вот ссылка, по которой вы можете скачать Microsoft SQL Server 2012 LocalDB.

После этого настройте каталог, в котором опубликован проект, для использования локальной системы в качестве пула приложений через диспетчер IIS. Чтобы сделать это, как указано здесь:

  1. Нажмите Пулы приложений в диспетчере IIS.
  2. Нажмите Добавить пул приложений..., чтобы создать новый пул приложений. Используйте любую настройку и имя, которое вы пожелаете.
  3. Выбрав новый пул приложений, нажмите Дополнительные параметры... и измените Идентичность на Локальную систему, нажав .... Он находится в раскрывающемся меню под встроенной учетной записью.
  4. Нажмите кнопку ОК, чтобы сохранить и закрыть все всплывающие окна и вернуться в диспетчер IIS.
  5. Выберите каталог, в котором опубликован проект, и нажмите " Дополнительные настройки".
  6. Измените Пул приложений на вновь созданный пул приложений и нажмите OK, чтобы закончить.

Обратите внимание, что нецелесообразно поддерживать пул приложений в качестве локальной системы, как описано здесь, но этого достаточно для тестирования.

То, что я сделал, было добавить appool как пользователя в SQL Server. А именно, на уровне SQL Server, перейдите к безопасности. Добавить новый логин. Добавьте IIS APPPOOL\APPPOOLNAME как пользователь. Не проверяйте пользователя или что-либо еще. Примите значения по умолчанию и добавьте пользователя appool в SQL Server. Дайте этому пользователю права на чтение / запись для базы данных и все. MSDN BLOG ссылка

Другие вопросы по тегам