什么是使ASP.NET MVC应用程序Web场准备就绪的最有效方法.
最重要的是共享当前用户的信息(上下文)和(不那么重要)缓存的对象,例如查找项(状态,街道类型,县等).
我听说过/读过MemCache但没有看到关于如何实现和测试它的简单适用方式(文档).
请求上下文
任何访问Web场的请求都由可用的IIS服务器提供服务.在那里创建上下文,整个请求由同一服务器提供服务.因此上下文不应成为问题.请求是无状态执行管道,因此它不需要以任何形式或形式与其他服务器共享数据.它将由同一台机器从头到尾提供.
用户信息从cookie中读取并由提供请求的服务器处理.这取决于你是否在某处缓存完整的用户对象.
会话
如果您使用TempData
字典,您应该知道它存储在Session
字典中.在服务器场中,这意味着您应使用除InProc会话之外的其他方法,因为它们不在服务器场中的IIS服务器之间共享.您应该配置使用数据库或其他(状态服务器等)的其他会话管理器.
缓存
当谈到缓存时,它是一个不同的故事.为了使其尽可能高效,还应该提供缓存.默认情况下不是.但是看一下缓存它几乎没有意味着当没有缓存时,它应该被读取并存储在缓存中.因此,如果特定服务器场服务器没有某个缓存对象,则会创建它.所有这些都会缓存一些共享的公共使用数据.
或者......你可以使用像memcached这样的库(如你所提到的)并利用共享缓存.网上有几个例子如何使用它.
但是这些解决方案都带来了一些额外的开销(如网络和第三个进程处理和数据获取等),如果没有别的话.因此默认缓存是最快的,如果您明确需要共享缓存,则决定一个.除非确实需要,否则不要共享缓存.