Application State适用于某些用户,但不适用于Web API 2中的其他用户

时间:2017-05-31 16:39:41

标签: c# asp.net iis asp.net-web-api2 load-balancing

我的ASP.NET Web API 2中有一个非常基本的控制器,其中一个HTTPGet方法将在ApplicationState中设置DateTime并返回它,然后第二个HTTPGet方法将 JUST 从app状态返回该变量,如果变量为null,则返回新的DateTime(0001-01-01T00:00:00)。

    [Route("appstate1")]
    [HttpGet]
    public DateTime appState1()
    {
        HttpContext.Current.Application["dt"] = DateTime.Now;
        return (DateTime?)HttpContext.Current.Application["dt"] ?? new DateTime() ;
    }

    [Route("appstate2")]
    [HttpGet]
    public DateTime appState2()
    {
        return (DateTime?)HttpContext.Current.Application["dt"] ?? new DateTime();
    }

所以这就是现场

  • 我去https://example.com/api/appstate1并设定时间:(2017-05-31T09:14:19.4130002-07:00)
  • 然后我去https://example.com/api/appstate2 :( 2017-05-31T09:14:19.4130002-07:00)
  • 同事A前往...appstate2 :( 0001-01-01T00:00:00)
  • Coworker B前往...appstate2 :( 2017-05-31T09:14:19.4130002-07:00)

更新1

在阅读我自己的帖子之后,我立刻记得我的API在两台服务器之间进行了负载均衡...所以这不是ac#问题而是更多的服务器/ IIS问题我想,但它仍然有效,因为我不# 39;知道如何在两台服务器上保存这些数据。

0 个答案:

没有答案