【问题标题】:app.UseDeveloperExceptionPage() doesn't seem to be working on ASP .NET Core on Ubuntuapp.UseDeveloperExceptionPage() 似乎不适用于 Ubuntu 上的 ASP .NET Core
【发布时间】:2016-10-25 16:55:30
【问题描述】:

目前为止非常简单的 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 请求因异常而失败时,我能够在开发者页面(顺便说一句,很棒的页面)上看到错误。

我将相同的应用程序作为独立应用程序发布到 Ubuntu,但我没有显示开发人员错误页面(尽管似乎运行良好 - 我硬编码了一个错误只是为了测试开发人员页面本身)。

【问题讨论】:

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


    【解决方案1】:

    开发者例外页面是在开发环境时使用的。

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

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

    【讨论】:

    • 我认为你是对的,因为它将环境变量设置为生产。但是,我没有像许多示例那样检查环境变量。不管怎样,我都要求它使用 UseDeveloperExceptionPage。为了证明这一点,您知道如何在 Ubuntu 部署上将环境设置为开发。这样如果它仍然不起作用,那么我们知道环境变量不是问题。
    • 在您的发布设置中确保您的配置是调试而不是发布。在 Ubuntu 上发布的文件中应该包含一个文件 appsettings.Development.json
    【解决方案2】:

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

    在 Ubuntu 上,您可以使用

    从命令行启动应用程序并设置托管环境

    > dotnet run --environment=Development

    对于 macOS:

    $ ASPNETCORE_ENVIRONMENT=Development dotnet run

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

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

    【讨论】:

    • 非常有用。谢谢!
    【解决方案3】:

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

     app.UseDeveloperExceptionPage();
    

    应该在之前

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

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

    【讨论】:

      猜你喜欢
      • 2020-06-16
      • 2018-07-06
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2020-09-06
      • 1970-01-01
      • 2017-03-13
      • 2020-04-04
      相关资源
      最近更新 更多