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

リバース プロキシはそのトリックを実行できるようですが、2 つの別個の iis で実行する必要があります。

于 2013-08-07T08:04:14.400 に答える