我想要实现的是:
- 使用实体框架连接到数据库的中央服务器
- 由于某种原因无法访问数据库但将请求转发到中央服务器的服务器(并非所有服务器都只有需要数据库的服务器)
- 一些无法访问中央服务器或数据库但只能访问中间服务器的 httpclients
我已经尝试成功修改控制器方法以创建一个 http 客户端,该客户端重做对中央服务器的请求,但这对我来说似乎是最糟糕的方式,特别是因为我有很多控制器和方法
public User GetUser(int id)
{
if (Properties.Settings.Default.SyncEnabled)
{
System.Net.Http.HttpClient httpClient = new System.Net.Http.HttpClient();
httpClient.BaseAddress = Properties.Settings.Default.SyncAddress;
var result = httpClient.GetAsync(this.Request.Url.PathAndQuery).Result;
return this.Content(result.Content.ReadAsStringAsync().Result, result.Content.Headers.ContentType.MediaType);
}
else
{
User user = DbContext.Users.Find(id);
user.LastOnline = DateTime.Now;
DbContext.SaveChanges();
return user;
}
}
我正在考虑使用注册路由,但我想知道这是否是个好主意,在阅读路由如何工作之前......我也对你将如何实现它感兴趣。