如何显示错误与ASP.净的核心
本文关键字:ASP 核心 错误 何显示 显示 | 更新日期: 2023-09-27 18:11:26
我有一个相当简单的网站,我正在玩使用ASP。净的核心。我从命令行运行的应用程序和网站正在返回静态文件,但我一直得到500个错误,当我试图使一个请求,应该由MVC处理。我怎么知道错误是什么?无论错误是显示到浏览器还是记录到控制台都无关紧要,我只想要一种方法来查看错误是什么。
添加错误页面中间件,如下所示:
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。净
这样做的好处是你不需要重新部署你的站点