.net core web api 500错误,无法点击断点

时间:2017-06-21 19:17:22

标签: 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;
    }

当我删除 UserManager构造函数签名中的IUserDataProvider _userDataProvider时,_userDataProvider = userDataProvider;我的web api将“工作”,因为我可以获得一个断点来命中我可以打电话给端点。显然会在GetAssociatedCustomerByUserEmail()内抛出异常,因为我没有注入IUserDataProvider。

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

起初我意识到我忘了注册IUserDataProvider,但即使在我的startup.cs中这样做之后我仍然遇到同样的问题。

        services.AddScoped<IUserDataProvider, UserDataProvider>();
        services.AddScoped<IUserManager, UserManager>();

其他所有内容......我的所有控制器,管理员,数据提供者等都在上工作。我想不明白。我已经检查了我所有的访问者(公共与私人),他们似乎是合法的。在这一点上,我已经没有什么可以调查的了。

2 个答案:

答案 0 :(得分:6)

从nuget

安装Install-package Microsoft.AspNetCore.Diagnostics

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();

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

答案 1 :(得分:0)

我今天被这个问题困扰。使用依赖注入,并且未在我的控制器使用的启动中注册类。