.NET Core ожидает localhost при запуске приложения

#c# #http #asp.net-core #.net-core

#c# #http #asp.net-core #.net-core

Вопрос:

Я только что создал новое веб-приложение в Visual Studio 2017. По какой-то причине, когда я пытаюсь запустить его, он просто показывает белый веб-браузер с сообщением «Ожидание локального хостинга».

В выводе отладки я вижу это исключение:

Возникло исключение: ‘System.Исключение InvalidOperationException’ в Microsoft.AspNetCore.Server.IIS.dll

Тем не менее, я не уверен, что на самом деле вызвало это?

Когда я отлаживал свой startup.cs, никаких исключений вызвано не было.

Исключение возникает после запуска BuildWebHost в моей Program.cs:

 public static void Main(string[] args)
{

    var logger = NLog.Web.NLogBuilder.ConfigureNLog("NLog.config").GetCurrentClassLogger();

    var connectionString = Environment.GetEnvironmentVariable(SDR_Logs.ClassLibrary.Globals.ApplicationGlobals.ConnectionString);
    LogManager.Configuration.Variables["connectionString"] = connectionString;
    try
    {
        logger.Debug("init main");
        BuildWebHost(args).Run();
    }
    catch (Exception ex)
    {
        //NLog: catch setup errors
        logger.Error(ex, "Stopped program because of exception");
        throw;
    }
    finally
    {
        // Ensure to flush and stop internal timers/threads before application-exit (Avoid segmentation fault on Linux)
        NLog.LogManager.Shutdown();
    }
}

public static IWebHost BuildWebHost(string[] args) =>
     WebHost.CreateDefaultBuilder(args)
        .UseStartup<Startup>()
        .UseKestrel(options => options.AddServerHeader = false)
        //.UseConfiguration(Configuration)
        .ConfigureLogging(logging =>
        {
            logging.ClearProviders();
        })
        .UseNLog()
        .Build();
  

Можно ли увидеть более подробную информацию о том, что это за недопустимая операция?

Комментарии:

1. Можете ли вы попробовать переключить отладку с IIS Express на ваше приложение? Вы все еще получаете ошибку?

2. Если я удалю use Kestrel, то по какой-то причине это сработает.

3. Какую машину вы используете? Это первый раз, когда используется машина? Регистратор — это последовательный порт. Подключали ли вы терминал типа putty к последовательному порту для просмотра каких-либо сообщений об ошибках?

4. Kestrel — это веб-сервер, который может заменить IIS.

5. learn.microsoft.com/en-us/aspnet/core/fundamentals/servers/…

Ответ №1:

Если вы перейдете к Debug -> Windows -> Exception Settings ( Ctrl Alt E ), вы можете включить Break при запуске для исключений среды выполнения Common Language.

введите описание изображения здесь
введите описание изображения здесь

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

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

введите описание изображения здесь