2016-10-25 2 views
3

Очень простое приложение ASP.NET для ядра. Я повернулся на странице исключения разработчика следующегоapp.UseDeveloperExceptionPage(), похоже, не работает на ASP.NET Core на Ubuntu

public void Configure(IApplicationBuilder app, IHostingEnvironment env, ILoggerFactory loggerFactory) 
    { 
     loggerFactory.AddConsole(Configuration.GetSection("Logging")); 
     loggerFactory.AddDebug(); 

     app.UseDeveloperExceptionPage(); 
     app.UseMvc(); 

    } 

Я развернутый его на окнах как переносное приложение, и я в состоянии видеть ошибки на странице разработчика (устрашающую страницу, кстати), когда запрос конкретного веб-API завершается с исключением.

Я публикую одно и то же приложение для Unbuntu как автономное приложение, и я не вижу страницу с сообщением об ошибке разработчика (хотя кажется, что она работает нормально - я жестко закодировал ошибку, чтобы проверить разработчика сама страница).

ответ

2

Страница исключения для разработчиков предназначена для использования в среде разработки.

См https://www.exceptionnotfound.net/working-with-environments-and-launch-settings-in-asp-net-core/

Акт публикации приложения для Ubuntu устанавливает среду для производства.

+0

Я думаю, вы правы в том, что он устанавливает переменную окружения для производства. Однако я не проверяю переменную среды, как это делают многие из примеров. Я спрашиваю его UseDeveloperExceptionPage независимо. Чтобы доказать это, вы знаете, как я могу настроить среду для разработки в развертывании Ubuntu. Таким образом, если он все еще не работает, то мы знаем, что переменная среды не является проблемой. – Mark

+0

В ваших настройках публикации убедитесь, что ваша Конфигурация Debug вместо Release. Должен быть файл appsettings.Development.json включен в ваши опубликованные файлы на Ubuntu –

1

По умолчанию в среде MacOS и Linux ASP.NET Core Hosting является Production.

В Ubuntu вы можете запустить приложение и установить хостинг среды из командной строки с помощью

> dotnet run --environment=Development

Для MacOS:

$ ASPNETCORE_ENVIRONMENT=Development dotnet run

Если вы используете Visual Studio код, в launch.json для каждой конфигурации есть следующая настройка:

"env": { "ASPNETCORE_ENVIRONMENT": "Development" }

+0

Очень полезно. Спасибо! – abhi

Смежные вопросы