0

我想要实现的是:

  1. 使用实体框架连接到数据库的中央服务器
  2. 由于某种原因无法访问数据库但将请求转发到中央服务器的服务器(并非所有服务器都只有需要数据库的服务器)
  3. 一些无法访问中央服务器或数据库但只能访问中间服务器的 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;
    }
}

我正在考虑使用注册路由,但我想知道这是否是个好主意,在阅读路由如何工作之前......我也对你将如何实现它感兴趣。

4

1 回答 1

0

由于没有人给我答案,我会建议自己尝试一下:

http://www.iis.net/learn/extensions/url-rewrite-module/reverse-proxy-with-url-rewrite-v2-and-application-request-routing

似乎反向代理可以解决问题,但我需要使用两个单独的 iis

于 2013-08-07T08:04:14.400 回答