如何查看例外的详细信息
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了如何查看例外的详细信息相关的知识,希望对你有一定的参考价值。
我在.NET Core 3.1项目中有一个API端点,该端点在localhost中可以正常工作,但是当我将应用程序发布到由IIS托管的文件夹的那一刻,我尝试访问该端点一次直播,我在Chrome中收到以下错误:
This page isn’t working
services.apiapptest.com is currently unable to handle this request.
HTTP ERROR 500
我已尝试将控制器围绕在try / catch中,以期将异常返回到屏幕,但没有骰子。我仍然收到上面的普通泛型白屏错误。如何查看此异常的详细信息?
以下是我的控制器代码(如果有帮助):
using System.Collections.Generic;
using System.Linq;
using System.Threading.Tasks;
using Microsoft.AspNetCore.Mvc;
using ApiEmployee.Data;
using ApiEmployee.Models;
namespace ApiEmployee.Controllers
[Route("api/[controller]")]
[ApiController]
public class EmployeesController : ControllerBase
private ApplicationDbContext _context;
public EmployeesController(ApplicationDbContext context)
_context = context;
[HttpGet]
public async Task<ActionResult<List<Employee>>> List()
return await _context.Employee.ToListAsync();
出于某种原因,以下代码在localhost / production中可以正常工作:
List<object> data = new List<object>
new
EmployeeId = 1,
FirstName = "Bob",
LastName = "Smith",
Email = "bob.smith@example.com",
Phone = "",
PhoneExtension = "",
Title = "Party King",
Department = "Party",
PhotoUrl = ""
;
return Ok(await Task.FromResult(data));
。NET Core我还很陌生,请原谅我的无知。
HTTP 500 see more是指由于某些内部服务器错误(例如防火墙阻止或错误的URL输入)而无法访问您的api URL。发布后检查您的URL输入。您的路由参考
services.apiapptest.com/api/controllername/action
除非您的请求进入控制器的操作,否则您不会获得任何异常。在这种情况下,您可以检查浏览器控制台或网络所请求的URL是否正确。
由于您已经在控制器动作中添加了try-catch并且一切都在本地运行,所以我说您甚至在到达控制器动作之前就收到500错误,这意味着在请求初始化期间(例如构造函数,甚至在此之前)。由于控制器的构造函数具有数据库上下文注入功能,因此请验证IIS应用程序池标识是否有权访问您的数据库帐户。此后,如果仍然出现错误,则可以通过启用远程调试并在控制器构造函数或代码操作的任何位置具有断点来进一步调试。
以上是关于如何查看例外的详细信息的主要内容,如果未能解决你的问题,请参考以下文章
Android:如何在Google Play开发者控制台中获取有关已捕获例外的信息?
如何使用 Gunicorn 查看 Django 错误的详细信息?