#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.
Это приведет к прерыванию выполнения, если в используемых вами библиотеках возникнет исключение, и может помочь пролить некоторый свет на проблему.
Когда вы закончите, вы можете сбросить настройки по умолчанию, щелкнув правой кнопкой мыши и выбрав Восстановить значения по умолчанию.