我在 .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 = "[email protected]",
Phone = "",
PhoneExtension = "",
Title = "Party King",
Department = "Party",
PhotoUrl = ""
}
};
return Ok(await Task.FromResult(data));
我对 .NET Core 还很陌生,所以请原谅我的无知。
由于您已经在控制器操作中添加了 try-catch 并且一切都在本地工作,因此我会说即使在到达控制器操作之前您也会收到 500 错误,这意味着在请求初始化期间(例如构造函数甚至在此之前)。由于您的控制器的构造函数具有数据库上下文注入,请验证IIS 应用程序池标识是否有权访问您的数据库帐户。在此之后,如果您仍然遇到错误,那么您可以通过启用远程调试并在控制器构造函数或代码操作中的任何位置设置断点来进一步调试。
本文收集自互联网,转载请注明来源。
如有侵权,请联系 [email protected] 删除。
我来说两句