.net核心Web API 500错误,无法达到断点

JzI*_*9Dg 2 c# asp.net-web-api asp.net-core asp.net-core-webapi

我有一个经理班:

 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;
    }
Run Code Online (Sandbox Code Playgroud)

当我删除IUserDataProvider _userDataProvider在构造函数中的UserManager签名和_userDataProvider = userDataProvider;我的网络API将在这个意义上的“工作”,我可以得到一个断点打,我可以调用的端点。显然是在内部引发了异常,GetAssociatedCustomerByUserEmail()因为我没有注入IUserDataProvider。

当我保留这些代码行时,我的所有Web API都将返回500错误状态,并且无法击中任何断点

起初我意识到我忘记注册IUserDataProvider,但是即使在startup.cs中注册后,我仍然遇到相同的问题。

        services.AddScoped<IUserDataProvider, UserDataProvider>();
        services.AddScoped<IUserManager, UserManager>();
Run Code Online (Sandbox Code Playgroud)

除此特定任务,我的所有其他控制器,经理,数据提供者等均在工作。我想不明白。我已经检查了所有访问器(公共访问与私有访问),它们似乎合法。此时,我已经没有足够的东西进行调查了。

Rez*_*eza 7

Install-package Microsoft.AspNetCore.Diagnostics从nuget 安装

将您的Configure方法更改startup.cs为以下内容,然后您将看到错误消息

注意它应该在任何其他行之前

    public void Configure(IApplicationBuilder app, IHostingEnvironment env, ILoggerFactory loggerFactory)
    {
        env.EnvironmentName = EnvironmentName.Development;
        if (env.IsDevelopment())
        {
            app.UseDeveloperExceptionPage();
        }
        else
        {
            app.UseExceptionHandler("/error");
        }

        app.UseStatusCodePages();
Run Code Online (Sandbox Code Playgroud)

更多信息https://docs.microsoft.com/zh-cn/aspnet/core/fundamentals/error-handling