Mat*_*att 5 c# asp.net-mvc global-variables shared-libraries asp.net-web-api
我有一个 mvc webapi 服务设置,可以从 sql server 数据库中拉取和推送数据。
在包含 webapi 的 Web 项目中,我有一个静态类,它只包含一些从 webapi 方法访问的全局变量。以下是静态类的一个非常精简的示例:
public static class SystemProperties
{
public static int currentContactID;
}
Run Code Online (Sandbox Code Playgroud)
当访问 WebApi 时,我从调用的 Http 标头中删除 ContactID,并将 SystemProperties.CurrentContactID 设置为它。
比在 webapi 的方法中,我访问 SystemProperties.CurrentContactID 进行数据调用。
我发现当并发 webapi 调用 currentContactID 时出现问题。
我的问题是,静态类成员如何在调用会话之间共享?它会不会是最后一个穿着最好的人,如果前一个人还在那里,那么他们会被新人搞砸,他会用他们的细节覆盖变量吗?
我应该使用不同的方法来存储这些详细信息吗?
提前致谢
您可以使用 Current HttpContext 来存储要在 HttpRequest 的生命周期中使用的项目
HttpContext.Current.Items["currentContactID"] = value
Run Code Online (Sandbox Code Playgroud)
因此,您可以从请求标头中获取数据,并将其存储在此处,并且该数据在该用户的当前 http Web 请求期间可用。每个 http 请求都有自己的 Items 字典,因此它不会被同时请求覆盖
如果您需要在同一用户的多个请求中存储变量,则需要查看 cookie 或会话。
| 归档时间: |
|
| 查看次数: |
4017 次 |
| 最近记录: |