Форум программистов, компьютерный форум, киберфорум
C#: ASP.NET Core
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 5.00/29: Рейтинг темы: голосов - 29, средняя оценка - 5.00
9 / 8 / 2
Регистрация: 20.02.2018
Сообщений: 94

Публикация приложения Net Core - создание таблиц базы данных

21.12.2019, 08:55. Показов 6522. Ответов 15
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Здравствуйте!

Извините за вопросы - только начинаю изучать базы данных.

Помогите с созданием таблиц базы данных при публикации на удалённом сервере, пожалуйста!

Вот я по учебнику создал небольшое тестовое веб-приложение ASP .NET Core с использованием базы данных.
(Учебник Razor Pages)

Пробую перенести и опубликовать приложение на VDS сервере.

- Windows Server 2019
- установил IIS
- установил MS SQL Express
- создал новую базу SQL
- публикацю сделал через папку (выгрузил на домашнем компе и потом скопировал на сервер)
- при публикации - указал путь к новой базе на SQL-сервере

В результате:
Приложение опубликовалось, сайт работает - но всё, что касается базы данных - не работает.
Таблицы в базе данных - не созданы.

Вопрос: Как при публикции - автоматически создать таблицы базы данных?
Причём там у меня ещё Identity - у неё тоже свои таблицы должны создаться как-то?
0
Programming
Эксперт
39485 / 9562 / 3019
Регистрация: 12.04.2006
Сообщений: 41,671
Блог
21.12.2019, 08:55
Ответы с готовыми решениями:

Фоновые процессы в ASP .NET Core и базы данных
Доброго времени суток всем. В общем, нужно сделать в учебных целях веб-приложение - я придумал сделать очередной RSS-агрегатор, в качестве...

Создание минимального запускаемого приложения ASP.NET Core 2 без шаблона в VS Code
Добрый день! Расскажите, пожалуйста, с подробными комментариями, что необходимо добавить и дописать в пустой папке или дописать в...

Передача данных серверу на Asp.Net Core с приложения на .NetFramework
У меня есть сервер написанный на сокетах. Он принимает данные от клиента (пакет байт) и транслирует их далее в сеть на устройства....

15
163 / 138 / 35
Регистрация: 25.11.2015
Сообщений: 910
21.12.2019, 09:43
Миграцию провести надо
0
19 / 17 / 3
Регистрация: 11.05.2018
Сообщений: 166
21.12.2019, 09:54
скиньте код хотя бы код
0
9 / 8 / 2
Регистрация: 20.02.2018
Сообщений: 94
21.12.2019, 10:28  [ТС]
А расскажите - как это можно сделать?
0
0 / 0 / 0
Регистрация: 11.11.2018
Сообщений: 1
21.12.2019, 16:48
Add-migration, затем update-database.
0
9 / 8 / 2
Регистрация: 20.02.2018
Сообщений: 94
21.12.2019, 17:01  [ТС]
Да я вот не понимаю - он требует указать проект, а где этот проект и как он называется?

Пишу команду: dotnet ef migrations add InitialCreate
А он мне в ответ: No project was found. Change the current working directory or use the --project option.

Где взять этот проект?
В папке, куда файлы публикации выгрузились - нет ничего похожего на слово project
Хелп!
Миниатюры
Публикация приложения Net Core - создание таблиц базы данных  
0
Эксперт .NET
6691 / 4102 / 1607
Регистрация: 09.05.2015
Сообщений: 9,574
21.12.2019, 17:08
Нужно находится в папке с проектом в это время.
0
9 / 8 / 2
Регистрация: 20.02.2018
Сообщений: 94
21.12.2019, 17:17  [ТС]
А где на сервере папка с проектом? Я же туда только файлы для публикации скачал? Это и есть папка проекта?
Из этой папки пробую - такая же картина: пишет, что нет проекта и требует указания проекта
Миниатюры
Публикация приложения Net Core - создание таблиц базы данных  
0
 Аватар для IamRain
4694 / 2702 / 734
Регистрация: 02.08.2011
Сообщений: 7,228
21.12.2019, 17:55
Zixi, Zixi, миграции лучше всего делать программно, при запуске приложения.
Если руками, то dotnet ef migrations -p ProjectName -s StartupProjectName add InitialCreate
-p - указывается проект в котором находится папка с миграциями.
-s - указывается стартовый проект, в котором хранится строка подключения. Собственно, ваше веб-приложение .
1
163 / 138 / 35
Регистрация: 25.11.2015
Сообщений: 910
21.12.2019, 20:17
1. Можно с консоли, можно из консоли в студии. Мне в студии удобнее. Судя по всему у человека уже есть база на локале и он хочет на сервере. Скорее всего update-database достаточно. Хотя вот тут я бы уточнил - может у человека EFCore не установлен?
2. В core не надо инициировать миграции
3. Не понимаю как чувак вообще работает с базой данных, если задает такие вопросы.
0
9 / 8 / 2
Регистрация: 20.02.2018
Сообщений: 94
21.12.2019, 20:42  [ТС]
@IamRain - спасибо большое!
Твой совет - очень помог. Благодаря ему - разобрался с вопросом.

Стало понятно, что я не разместил решение (вместе с проектом) на сервере.
Я только файлы для публикации копировал на сервер и всё.

Скопировал решение с проектом на сервер (они у меня в одной папке).
Много и долго экспериментировал с командной строкой - и в результате... ура!... получилось.
Сделал миграцию и обновил базу. Всё вроде стало ок.

P.S. Не ругайте сильно, пожалуйста! Я первый раз сегодня работал с подобной базой данных. И только начал недавно изучать по учебнику Microsoft веб-приложения.

Теперь другая возникла проблема:
1) Если запустить приложение через файл .exe (который в папке публикации) - то показываются локальные пути типа localhost:5001 - и если на сервере открыть браузер и начать работать с веб-приложением - то всё отлично работает.
2) А из интернета (с домашнего компа) - не работает, пишет ошибку (я так понимаю при обращении к базе данных):
"An error occurred while processing your request." (см. картинку)
И никак не пойму - что можно сделать, чтобы исправить? (если что - у меня на сервере Visual Studio не установлена)
0
 Аватар для IamRain
4694 / 2702 / 734
Регистрация: 02.08.2011
Сообщений: 7,228
21.12.2019, 21:14
Цитата Сообщение от Zixi Посмотреть сообщение
Стало понятно, что я не разместил решение (вместе с проектом) на сервере.
Именно поэтому по-хорошему нужно применять миграции программно (из кода), а вручную миграции применяют во время активной разработки.

Добавлено через 2 минуты
А так да, вы делали правильно, что копировали на сервер только файлы для публикации.
0
9 / 8 / 2
Регистрация: 20.02.2018
Сообщений: 94
22.12.2019, 16:32  [ТС]
IamRain !

Объясни, пожалуйста, я так и не понял - последовательность моих действий?

Вот я скопировал на север папку с файлами для публикации - что я дальше должен сделать?
Ведь проектам там - нет? Файлов/папки с миграциями - тоже нет...
Что делать дальше?
0
163 / 138 / 35
Регистрация: 25.11.2015
Сообщений: 910
22.12.2019, 18:02
Берешь строку подключения к базе данных на сервере и проводишь update-database у себя в проекте. Все.
0
9 / 8 / 2
Регистрация: 20.02.2018
Сообщений: 94
22.12.2019, 18:15  [ТС]
У меня же проект на домашнем компе. Там же другая локальная база, встроенная в Visual Studio которая.
А на удалённом сервере - я вообще с базами работать не умею. Её же как-то "расшаривать" для доступа извне надо?
А это я как понимаю не рекомендуется в целях безопасности? Да я и не знаю пока как это сделать.

Добавлено через 4 минуты
Я вот так пока сделал:

1) В Visual Studio в консоли PMC (Консоль диспетчера пакетов) запустили команду:
script-migration
2) Visual Studio создала и открыла файл скрипта sql
3) Скопировали этот скрипт себе куда-нибудь
4) На сервере - открыли SQL Server Management Studio
5) Правой кнопкой на нужной базе -> New Query (Новый запрос) - откроется окно для создания SQL-запроса - вставить туда ранее сфомированный в Visual Studio запрос и нажать кнопку Execute (F5 - выполнить запрос)
6) Средствами SQL Server по заданному скрипту - будут созданы необходимые таблицы базы данных

Проверил снова на запуске exe-файла - по адресу localhost:5001 - веб-приложение отлично работает.

Осталось понять - почему по названию сайта через IIS не работает...
Что и где можно посмотреть?
0
9 / 8 / 2
Регистрация: 20.02.2018
Сообщений: 94
22.12.2019, 20:17  [ТС]
Проблема решилась так - надо дать права IIS на работу с базой данных :
1) Надо создать новое подключение к базам SQL Server (Security -> New -> Login)
2) Пользователя надо обязательно назвать по правилу: IIS APPPOOL\ + название вашего пула, в котором находятся приложения Net Core. Например так: IIS APPPOOL\NetCoreApps
И указать в настройках User Mapping три роли для нужной базы данных:
db_datareader
db_datawriter
public

Я так сделал - и веб-приложение заработало из интернета. Ура!

Подводим итоги темы:
1) Миграцию базы данных - делаем через скрипт SQL, созданный в Visual Studio
2) Создаём правильное подключение IIS к SQL Server

Вопрос, закрыт. Всем спасибо!
Миниатюры
Публикация приложения Net Core - создание таблиц базы данных   Публикация приложения Net Core - создание таблиц базы данных  
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
inter-admin
Эксперт
29715 / 6470 / 2152
Регистрация: 06.03.2009
Сообщений: 28,500
Блог
22.12.2019, 20:17
Помогаю со студенческими работами здесь

Создание базы данных на лету, создание и заполнение таблиц в базе DB (Paradox? или..).
Здравствуйте Профи! --- Видел я "простенькую" (exe-шник небольшого размера, запускается сразу, без предварительной установки)...

Создание базы данных и таблиц
Как создать базу данных с таблицами в MS SQL Server 2008 на основе скриптов из PowerDesigner'a. То есть я создал концептуальную модель в...

Создание таблиц базы данных
прошу вашей помощи уважаемые гуру вопрос в следуещем есть форма на которой расположены два datagridwiev один отображает данные которые...

Публикация ASP.NET приложения
Здравствуйте. Я создал ASP.NET (не MVC) приложение. Хочу выложить её на somee.com Подготовил к публикации так: 1) В...

Создание базы данных, таблиц, типы данных и триггеры
Здравствуйте. В колледже выдали задание по базам данных. Как создавать базы, таблицы и типы данных через встроенные инструменты - я...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
16
Ответ Создать тему
Новые блоги и статьи
SDL3 для Web (WebAssembly): Обработчик клика мыши в браузере ПК и касания экрана в браузере на мобильном устройстве
8Observer8 02.02.2026
Содержание блога Для начала пошагово создадим рабочий пример для подготовки к экспериментам в браузере ПК и в браузере мобильного устройства. Потом напишем обработчик клика мыши и обработчик. . .
Философия технологии
iceja 01.02.2026
На мой взгляд у человека в технических проектах остается роль генерального директора. Все остальное нейронки делают уже лучше человека. Они не могут нести предпринимательские риски, не могут. . .
SDL3 для Web (WebAssembly): Вывод текста со шрифтом TTF с помощью SDL3_ttf
8Observer8 01.02.2026
Содержание блога В этой пошаговой инструкции создадим с нуля веб-приложение, которое выводит текст в окне браузера. Запустим на Android на локальном сервере. Загрузим Release на бесплатный. . .
SDL3 для Web (WebAssembly): Сборка C/C++ проекта из консоли
8Observer8 30.01.2026
Содержание блога Если вы откроете примеры для начинающих на официальном репозитории SDL3 в папке: examples, то вы увидите, что все примеры используют следующие четыре обязательные функции, а. . .
SDL3 для Web (WebAssembly): Установка Emscripten SDK (emsdk) и CMake для сборки C и C++ приложений в Wasm
8Observer8 30.01.2026
Содержание блога Для того чтобы скачать Emscripten SDK (emsdk) необходимо сначало скачать и уставить Git: Install for Windows. Следуйте стандартной процедуре установки Git через установщик. . . .
SDL3 для Android: Подключение Box2D v3, физика и отрисовка коллайдеров
8Observer8 29.01.2026
Содержание блога Box2D - это библиотека для 2D физики для анимаций и игр. С её помощью можно определять были ли коллизии между конкретными объектами. Версия v3 была полностью переписана на Си, в. . .
Инструменты COM: Сохранение данный из VARIANT в файл и загрузка из файла в VARIANT
bedvit 28.01.2026
Сохранение базовых типов COM и массивов (одномерных или двухмерных) любой вложенности (деревья) в файл, с возможностью выбора алгоритмов сжатия и шифрования. Часть библиотеки BedvitCOM Использованы. . .
SDL3 для Android: Загрузка PNG с альфа-каналом с помощью SDL_LoadPNG (без SDL3_image)
8Observer8 28.01.2026
Содержание блога SDL3 имеет собственные средства для загрузки и отображения PNG-файлов с альфа-каналом и базовой работы с ними. В этой инструкции используется функция SDL_LoadPNG(), которая. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru