mvc4充当网关

时间:2013-07-30 10:47:49

标签: asp.net-mvc http asp.net-mvc-routing

我想要达到的目标是:

  1. 使用实体框架
  2. 连接到数据库的中央服务器
  3. 由于某种原因无法访问数据库但将请求转发到中央服务器的服务器(并非所有服务器都只需要数据库的人)
  4. 一些无法访问中央服务器或数据库但仅访问中间服务器的httpclients
  5. 我已经尝试过成功修改控制器方法来创建一个重新向中心服务器重做的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;
        }
    }
    

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

1 个答案:

答案 0 :(得分:0)

由于没有人给我答案我会建议自己尝试这个:

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

似乎反向代理可以做到这一点,但我需要用两个独立的iis

来做