48

我有一个使用 ASP.NET Core 玩的相当简单的网站。我正在从命令行运行应用程序,并且网站正在返回静态文件,但是当我尝试发出应该由 MVC 处理的请求时,我不断收到 500 个错误。我如何查看错误是什么?错误是显示到浏览器还是记录到控制台都没有关系,我只是想要一种方法来查看错误是什么。

4

4 回答 4

66

添加错误页面中间件,如下所示

app.UseDeveloperExceptionPage();
于 2014-07-04T02:55:05.870 回答
21

beta8 更新:
在 beta8 中,Microsoft 将名称更改为UseDeveloperExceptionPage. 因此,如果您想使用 ErrorPage,请调用:

app.UseDeveloperExceptionPage();

这是相关Github 问题的链接。
与 beta6/7 中的ErrorPageOptions相同。


您可以使用

app.UseErrorPage(ErrorPageOptions.ShowAll)

直到Asp.Net Mvc 的beta5 。


截至beta6ErrorPageOptions.ShowAll已被删除。您现在可以使用不带参数的版本

app.UseErrorPage();

或创建一个 ErrorPageOptions 对象并通过设置 SourceCodeLineCount 指定要在错误周围显示多少行。

app.UseErrorPage(new ErrorPageOptions() {SourceCodeLineCount = 100});

附加信息

ErrorPageOptions他们删除了此提交中的多个属性。

前:

public class ErrorPageOptions
{
    private bool _defaultVisibility;

    private bool? _showExceptionDetails;
    private bool? _showSourceCode;
    private bool? _showQuery;
    private bool? _showCookies;
    private bool? _showHeaders;
    private bool? _showEnvironment;
    ...
}

后:

public class ErrorPageOptions
{
    public int SourceCodeLineCount { get; set; }
    public IFileProvider FileProvider { get; set; }
    ...
}

所以现在只能设置打印多少行源代码。

于 2015-10-13T11:41:04.333 回答
13

如果您不关心您的错误详细信息会暴露给世界,您可以直接在浏览器中启用错误详细信息,而无需更改任何代码。(这仅在测试中IIS 8.5):

  • IIS Manager左侧Connections部分中,左键单击选择您的Site.
  • 在右侧Feature View打开Error Pages
  • 在最右侧Actions部分,单击Edit Feature Settings
  • Error Responses, 中选择第二个, Detailed errors, 然后选项Ok(或者如果您担心向世界公开内容,请从第 3 个选项开始,如果您可以打开本地浏览器...即 localhost:...)

这应该足以让您能够看到确切的错误...重要提示:如果您必须使用中间Detailed errors选项,请确保在调试问题后将其关闭。这可以为黑客提供闯入您的服务器所需的一切。

于 2018-03-10T08:38:17.290 回答
-1

如果向世界公开错误的详细信息并不重要,那么您可以在 web.config 中激活详细的错误页面。

只需添加位于您网站根文件夹中的 web.config 文件<customErrors mode="Off"/><configuration>/即可。<system.web>

更详细的解释: How to Use Web.Config customErrors for ASP.NET

这样做的好处是您不必重新部署您的网站

于 2020-05-08T22:07:09.250 回答