ASP.NET MVC如何在同一解决方案中使用另一个项目中的功能

时间:2018-08-02 03:36:40

标签: c# asp.net asp.net-mvc

我尝试了各种方法来使我的应用程序正常工作,并尝试在此处搜索针对我收到的各种消息的解决方案,但没有一个起作用。因此,我决定从头开始,并寻求连接我的两个应用程序的正确方法。

我有一个内部有2个项目的解决方案:

  • 应用程序
    应用程序是具有登录/注销,用户管理的独立应用程序 功能等。
    应用程序已连接到数据库

  • ApplicationApi
    ApplicationApi是一个引用Application的控制台应用程序
    ApplicationApi的主要任务是通过其应用程序接收任何传入的请求 ApiController,然后将其传递给应用程序,然后应用程序将返回结果 对此
    ApplicationApi未连接到数据库

这是我要在ApplicationApi中调用函数的ApplicationApi中的函数

namespace ApplicationApi.Controllers
{
    public class TokenController:ApiController
    {
        public String Get()
        {
            var auth = new AuthenticationController();
            return auth.AuthenticateUser("user@one.com", "P@ssw0rd").ToString();
        }
    }
}

这是ApplicationApi调用的功能

namespace Application.Controllers.API
{
    public class AuthenticationController : Controller
    {
        ApplicationDbContext dbContext = new ApplicationDbContext();
        Logger log = LogManager.GetCurrentClassLogger();
        PasswordHasher passwordHasher = new PasswordHasher();
        public bool AuthenticateUser(String username, String password)
        {
            try
            {
                var user = dbContext.Users.FirstOrDefault(u => u.UserName == username);
                if (user == null)
                {
                    log.Error(username + " not found");
                    return false;
                }
                else
                {
                    var result = passwordHasher.VerifyHashedPassword(user.PasswordHash, password);
                    if (result == PasswordVerificationResult.Success)
                    {
                        return true;
                    }
                    else
                    {
                        log.Error("Invalid password for user: " + username);
                        return false;
                    }
                }
            }
            catch (Exception e)
            {
                log.Error(e, "Exception found for user: " + username);
                return false;
            }
        }
    }
}

此刻,当我从邮递员发出请求时,在调试打开时,我从应用程序中收到此错误:

{“未找到具有不变名称'System.Data.SqlClient'的ADO.NET提供程序的实体框架提供程序。请确保该提供程序已在应用程序配置文件的'entityFramework'部分中注册。请参见{{3} }以获取更多信息。“}

这似乎是在说我的ApplicationApi是否需要EntityFramework或需要引用它才能工作?

那是我感到困惑的地方。 ApplicationApi仅应向Application询问结果。为什么会发生此错误? ApplicationApi没有任何数据库连接。也不需要这样做。它只是一个传输层。

也许我开始做错了,所以我希望有人可以指导我如何实际执行此操作。

编辑:我的问题不是那个问题的重复,因为我在问为什么我需要在不连接数据库的Api项目中使用EntityFramework?

0 个答案:

没有答案