如何使用ASP.NET Core显示错误

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

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

app.UseDeveloperExceptionPage(); 

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

 app.UseDeveloperExceptionPage(); 

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


您可以使用

 app.UseErrorPage(ErrorPageOptions.ShowAll) 

直到Asp.Net Mvc的beta5


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 (或者如果您担心向世界公开内容,请从第3个选项开始,如果您可以打开本地浏览器…即localhost:.. 。)

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