Проблема в следующем. При запуске проекта через
IIS работает
если запускаешь проект через режим отладки то результат такой
И если ты пытаешься зарегиться или войти выдаёт
Не могу понять почему??? вот файл Program.cs
public class Program
{
public static void Main(string[] args)
{
BuildWebHost(args).Run();
}
public static IWebHost BuildWebHost(string[] args) =>
WebHost.CreateDefaultBuilder(args)
.UseStartup<Startup>()
.Build();
}
Вот appsiting.json
{
"ConnectionStrings": {
"DefaultConnection": "Server=.\\SQLEXPRESS;Database=aspLaboratory56;Trusted_Connection=True;MultipleActiveResultSets=true"
},
"Logging": {
"IncludeScopes": false,
"LogLevel": {
"Default": "Warning"
}
}
}
Вот Startup
public IConfiguration Configuration { get; }
// This method gets called by the runtime. Use this method to add services to the container.
public void ConfigureServices(IServiceCollection services)
{
services.AddDbContext<ApplicationDbContext>(options =>
options.UseSqlServer(Configuration.GetConnectionString("DefaultConnection")));
В чём может быть причина? В режиме IIS всё работает!
Вот launchSettings.json
{
"iisSettings": {
"windowsAuthentication": false,
"anonymousAuthentication": true,
"iisExpress": {
"applicationUrl": "http://localhost:58730/",
"sslPort": 44388
}
},
"profiles": {
"IIS Express": {
"commandName": "IISExpress",
"launchBrowser": true,
"launchUrl": "https://localhost:44388/",
"environmentVariables": {
"ASPNETCORE_ENVIRONMENT": "Development"
}
},
"Laboratory56": {
"commandName": "Project",
"launchBrowser": true,
"environmentVariables": {
"ASPNETCORE_ENVIRONMENT": "Development"
},
"applicationUrl": "http://localhost:58731/"
}
}
}
Вспомнил ещё одну вещь. Когда не помню, но начал ругаться на ILogger Нашёл решение
// если выдаёт вот такое
// (InvalidOperationException: Unable to resolve service for type'Microsoft.Extensions.Logging.ILogger' while attempting to activate 'Laboratory56.Controllers.AccountController'.)
// Нужно сделать так, вместо ILogger logger сделать ILoggerFactory logger
// а вместо _logger = logger; сделать так _logger = logger.CreateLogger("My logger");
До конца не понял почему но это работает. Может прольёт свет!
Вот проект. Может так понятней будет. git clone https://EugeneTM@bitbucket.org/EugeneTM/laba.git
У вас немного сбивающий с толку заголовок. Очевидно же, что приложение у вас работает, отладка работает, просто вы в рантайме получаете исключение
InvalidOperationException: Unable to resolve service for type'Microsoft.Extensions.Logging.ILogger' while attempting to activate 'Laboratory56.Controllers.AccountController'.
Исключение вызвано тем, что вы пытаетесь получить нетипизированный логгер, а стандартная система логгирования регистрирует в DI только типизированный, ILogger
Т.е у вас сейчас конструктор AccountController
выглядит примерно так:
public AccountController(
UserManager<ApplicationUser> userManager,
SignInManager<ApplicationUser> signInManager,
IEmailSender emailSender,
ILogger logger)
{
_userManager = userManager;
_signInManager = signInManager;
_emailSender = emailSender;
_logger = logger;
}
А должен выглядеть вот так (как в шаблоне .NET Core 2.0):
public AccountController(
UserManager<ApplicationUser> userManager,
SignInManager<ApplicationUser> signInManager,
IEmailSender emailSender,
ILogger<AccountController> logger) // <---------
{
_userManager = userManager;
_signInManager = signInManager;
_emailSender = emailSender;
_logger = logger;
}
В IIS у вас работает, потому что там вы уже залогинены, и ссылка ведет на другое действие.
Айфон мало держит заряд, разбираемся с проблемой вместе с AppLab
Перевод документов на английский язык: Важность и ключевые аспекты
Есть несколько блоков с одинаковым классом, по тыку срабатывает функция, которая сравнивает текст блока с полем из таблицы в бд, и после выборки...
У меня есть кнопка, на которой вести функция: <div class="btn btn-v-1" style="margin-top:30px" type="text" onclick='SaveCountry();'>Upload</div> Как сделать, чтоб если функция отработала...
как сравнить текущую строку и ту, которая появляется на ее месте при ajax запросеВ частности я хочу реализовать такой механизм, который будет...
Какие данные записывать в куки после авторизации? Пароль, полагаю, хранить небезопасно, но какой идентификатор можно использовать, чтобы...