app.UseDeveloperExceptionPage()似乎没有在Ubuntu

时间:2016-10-25 16:55:31

标签: c# asp.net ubuntu asp.net-core .net-core

到目前为止,非常简单的ASP .NET核心应用程序。我打开了开发者异常页面,如下所示

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

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

    }

我已经将它作为便携式应用程序部署在Windows上,并且当特定的Web API请求因异常而失败时,我能够在开发者页面上看到错误(顺便说一句很棒的页面)。 / p>

我将同一个应用程序发布到Ubuntu作为一个独立的应用程序,我不会显示开发人员错误页面(虽然似乎运行良好 - 我已经硬编码错误只是为了测试开发者页面本身。)

3 个答案:

答案 0 :(得分:2)

开发人员异常页面适用于环境为开发时。

请参阅https://www.exceptionnotfound.net/working-with-environments-and-launch-settings-in-asp-net-core/

将应用程序发布到Ubuntu的行为是将环境设置为生产。

答案 1 :(得分:1)

默认情况下,macOS和Linux ASP.NET Core的托管环境是Production。

在Ubuntu上,您可以使用

启动应用程序并从命令行设置主机环境

> dotnet run --environment=Development

对于macOS:

$ ASPNETCORE_ENVIRONMENT=Development dotnet run

如果您使用的是Visual Studio Code,则在launch.json中,每个配置都有以下设置:

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

答案 2 :(得分:0)

Startup.cs主要是程序性的。在您的 Startup.cs

 app.UseDeveloperExceptionPage();

应该先于

 app.UseEndpoints(endpoints =>
 {
     endpoints.MapControllers();
     endpoints.MapRazorPages();
 });

如果您在之后添加它,它将不起作用。