如何显示错误与ASP.净的核心

本文关键字:ASP 核心 错误 何显示 显示 | 更新日期: 2023-09-27 18:11:26

我有一个相当简单的网站,我正在玩使用ASP。净的核心。我从命令行运行的应用程序和网站正在返回静态文件,但我一直得到500个错误,当我试图使一个请求,应该由MVC处理。我怎么知道错误是什么?无论错误是显示到浏览器还是记录到控制台都无关紧要,我只想要一种方法来查看错误是什么。

如何显示错误与ASP.净的核心

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

app.UseDeveloperExceptionPage();

更新为试用版:
在测试版8中,微软将其更名为UseDeveloperExceptionPage。所以如果你想使用ErrorPage,调用:

app.UseDeveloperExceptionPage();

这里是相关Github问题的链接。
ErrorPageOptions和beta6/7一样。


可以使用

app.UseErrorPage(ErrorPageOptions.ShowAll)

until beta5净Mvc。


beta6开始,ErrorPageOptions.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; }
    ...
}

那么现在你只能设置打印源代码的行数

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

  • IIS Manager中,在左侧的Connections部分,左键选择您的Site
  • Feature View右侧打开Error Pages
  • 在最右边的Actions部分,点击Edit Feature Settings
  • Error Responses中,选择第二个,Detailed errors,选项然后Ok(或者如果你担心向世界暴露东西,从第三个选项开始,如果你可以打开本地浏览器…即localhost:……)

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

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

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

查看更详细的解释:如何使用网络。为ASP配置customErrors。净

这样做的好处是你不需要重新部署你的站点