.net core web api 500 错误并且无法命中断点
.net core web api 500 error and can't hit breakpoints
我有一个经理class:
public class UserManager : IUserManager
{
private readonly IGraphApiClient _client;
private readonly IUserDataProvider _userDataProvider;
private readonly IMapper _mapper;
public UserManager(IGraphApiClient client, IMapper mapper, IUserDataProvider _userDataProvider)
{
_mapper = mapper;
_client = client;
_userDataProvider = userDataProvider;
}
public IEnumerable<Customer> GetAssociatedCustomersByUserEmail(string email)
{
var customers = _userDataProvider.GetAssociatedCustomersByUserEmail(email);
return customers;
}
当我 删除 UserManager 构造函数签名中的 IUserDataProvider _userDataProvider
和 _userDataProvider = userDataProvider;
我的网站 api 将 "work"从某种意义上说,我可以获得断点并可以调用端点。 GetAssociatedCustomerByUserEmail()
中显然抛出了一个异常,因为我没有注入 IUserDataProvider。
当我保留这些代码行时,我所有的网站 API 都将 return 为 500 错误状态并且我 无法命中任何断点 。
起初我意识到我忘记注册 IUserDataProvider,但即使在我的 startup.cs 中注册之后,我仍然遇到同样的问题。
services.AddScoped<IUserDataProvider, UserDataProvider>();
services.AddScoped<IUserManager, UserManager>();
其他一切……我所有的控制者、经理、数据提供者等都在除了这个特定的工作。我想不明白。我到处都检查了我的所有访问器(public vs private),它们看起来是合法的。我 运行 目前没有要调查的东西。
从 nuget
安装 Install-package Microsoft.AspNetCore.Diagnostics
将 startup.cs
中的 Configure
方法更改为下面的方法,然后您将看到错误消息
注意它应该在任何其他行之前
public void Configure(IApplicationBuilder app, IHostingEnvironment env, ILoggerFactory loggerFactory)
{
env.EnvironmentName = EnvironmentName.Development;
if (env.IsDevelopment())
{
app.UseDeveloperExceptionPage();
}
else
{
app.UseExceptionHandler("/error");
}
app.UseStatusCodePages();
更多信息https://docs.microsoft.com/en-us/aspnet/core/fundamentals/error-handling
我今天被这个问题困扰了。使用依赖注入并且没有在我的控制器正在使用的启动中注册 class。
我有一个经理class:
public class UserManager : IUserManager
{
private readonly IGraphApiClient _client;
private readonly IUserDataProvider _userDataProvider;
private readonly IMapper _mapper;
public UserManager(IGraphApiClient client, IMapper mapper, IUserDataProvider _userDataProvider)
{
_mapper = mapper;
_client = client;
_userDataProvider = userDataProvider;
}
public IEnumerable<Customer> GetAssociatedCustomersByUserEmail(string email)
{
var customers = _userDataProvider.GetAssociatedCustomersByUserEmail(email);
return customers;
}
当我 删除 UserManager 构造函数签名中的 IUserDataProvider _userDataProvider
和 _userDataProvider = userDataProvider;
我的网站 api 将 "work"从某种意义上说,我可以获得断点并可以调用端点。 GetAssociatedCustomerByUserEmail()
中显然抛出了一个异常,因为我没有注入 IUserDataProvider。
当我保留这些代码行时,我所有的网站 API 都将 return 为 500 错误状态并且我 无法命中任何断点 。
起初我意识到我忘记注册 IUserDataProvider,但即使在我的 startup.cs 中注册之后,我仍然遇到同样的问题。
services.AddScoped<IUserDataProvider, UserDataProvider>();
services.AddScoped<IUserManager, UserManager>();
其他一切……我所有的控制者、经理、数据提供者等都在除了这个特定的工作。我想不明白。我到处都检查了我的所有访问器(public vs private),它们看起来是合法的。我 运行 目前没有要调查的东西。
从 nuget
安装Install-package Microsoft.AspNetCore.Diagnostics
将 startup.cs
中的 Configure
方法更改为下面的方法,然后您将看到错误消息
注意它应该在任何其他行之前
public void Configure(IApplicationBuilder app, IHostingEnvironment env, ILoggerFactory loggerFactory)
{
env.EnvironmentName = EnvironmentName.Development;
if (env.IsDevelopment())
{
app.UseDeveloperExceptionPage();
}
else
{
app.UseExceptionHandler("/error");
}
app.UseStatusCodePages();
更多信息https://docs.microsoft.com/en-us/aspnet/core/fundamentals/error-handling
我今天被这个问题困扰了。使用依赖注入并且没有在我的控制器正在使用的启动中注册 class。