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