Как развернуть Blazor нетронутое DemoApp, НО с работающей авторизацией (BlazorServer) - PullRequest
1 голос
/ 28 мая 2020

Я не могу сам придумать решение ... для следующей задачи!

Я пытаюсь развернуть нетронутый шаблон Blazor из Visual Studio (Blazor Server (не WebAssembly) с включенной аутентификацией ( отдельных пользователей).

Если я запускаю приложение локально на своем P C, все работает нормально. Я могу зарегистрировать учетную запись в et c.

Но если я "Publi sh "приложение Blazor и загрузите его на свою сторону хостинга. Я не могу использовать регистр аутентификации / вход и др. c. (Хостинг на межсерверном сервере. net / ASP. NET Веб-хостинг (0 из 25 MS SQL used) / config с plesk)

Я получаю сообщение об ошибке Server Status 500.

Некоторые моменты, о которых стоит упомянуть. Я установил шаблон приложения для работы с «Приложение будет хранить внутреннее содержимое пользователя».

Я в значительной степени новичок в базах данных, SQL et c ..


Я думаю, что проблема в том, что я использую «Внутренний пользователь магазина приложений» Вариант прямо при создании проекта. Правда?

Нужно ли мне также публиковать sh мой SQ База данных LDatabase, которая автоматически создается с помощью шаблона (локально) для моего сервера? (да, тогда -> как?)

Могу ли я использовать строку подключения к БД из приложения. json и создать БД на моем сервере с тем же именем, что и локальная база данных? Но у моего хостера, если я хочу добавить SQL db, мне нужно создать пользователя и пароль. В локальном проекте мне не нужно было вводить пользователя или пароль, так как же это сделать?

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

1 Ответ

1 голос
/ 29 мая 2020

Когда вы создаете приложение Blazor с использованием Identity с локальными учетными записями пользователей, по умолчанию используется Entity Framework и Microsoft SQL Server, в частности SQLexpress на вашем компьютере разработчика. Если вы отметите Startup.cs, вы должны увидеть:

   services.AddDbContext<ApplicationDbContext>(options =>
       options.UseSqlServer(
           Configuration.GetConnectionString("DefaultConnection")));

Поскольку ваш хостинг предоставляет MySql, это не сработает, поэтому вам нужно заменить это. Имеет смысл удалить SqlServer из вашего шаблона и переключиться на использование MySql на вашей машине разработки, чтобы оба использовали один и тот же код.

При локальном запуске используемая строка подключения берется из appsettings.json. Когда вы публикуете sh, если есть файл с именем appsettings.Production.json, вместо него будут использоваться любые настройки, поэтому вы можете поместить туда строку подключения для подключения к размещенной базе данных MySQL.

Я не эксперт по настройке MySQL, поэтому предлагаю вам посмотреть ". NET Core 3 - Blazor App and Security with Identity и MySql" , которые должны помочь в процесс.

...