我有一个使用 ASP.NET Core 玩的相当简单的网站。我正在从命令行运行应用程序,并且网站正在返回静态文件,但是当我尝试发出应该由 MVC 处理的请求时,我不断收到 500 个错误。我如何查看错误是什么?错误是显示到浏览器还是记录到控制台都没有关系,我只是想要一种方法来查看错误是什么。
4 回答
添加错误页面中间件,如下所示:
app.UseDeveloperExceptionPage();
beta8 更新:
在 beta8 中,Microsoft 将名称更改为UseDeveloperExceptionPage
. 因此,如果您想使用 ErrorPage,请调用:
app.UseDeveloperExceptionPage();
这是相关Github 问题的链接。
与 beta6/7 中的ErrorPageOptions
相同。
您可以使用
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
选项,请确保在调试问题后将其关闭。这可以为黑客提供闯入您的服务器所需的一切。
如果向世界公开错误的详细信息并不重要,那么您可以在 web.config 中激活详细的错误页面。
只需添加位于您网站根文件夹中的 web.config 文件<customErrors mode="Off"/>
的<configuration>
/即可。<system.web>
更详细的解释: How to Use Web.Config customErrors for ASP.NET
这样做的好处是您不必重新部署您的网站