使 ASP.NET MVC 应用程序为 Web Farm 做好准备

2024-04-23

使 ASP.NET MVC 应用程序 Web 场做好准备的最有效方法是什么。

最重要的是共享当前用户的信息(上下文)和(不太重要)缓存的对象,例如查找项目(州、街道类型、县等)。

我听说过/读过 MemCache,但还没有看到关于如何实现和测试它的简单适用方法(文档)。


请求上下文
任何到达网络场的请求都会由可用的 IIS 服务器提供服务。上下文在那里创建,整个请求由同一服务器提供服务。所以上下文应该不是问题。请求是无状态执行管道,因此它不需要以任何方式与其他服务器共享数据。从头到尾都将由同一台机器提供服务。
用户信息从 cookie 中读取,并由服务该请求的服务器进行处理。这取决于您是否将完整的用户对象缓存在某处。

Session
如果你使用TempData字典你应该知道它存储在里面Session字典。在服务器场中,这意味着您应该使用 InProc 会话以外的其他方式,因为它们不在服务器场中的 IIS 服务器之间共享。您应该配置使用数据库或其他(状态服务器等)的其他会话管理器。

Cache
当谈到缓存时,情况就不同了。为了使其尽可能高效,还应该提供缓存服务。默认情况下不是。但看看缓存,它几乎意味着当没有缓存时,应该读取它并将其存储在缓存中。因此,如果特定服务器场服务器没有某些缓存对象,它将创建它。随着时间的推移,它们都会缓存一些共享的公开使用的数据。
或者......你可以使用类似的库内存缓存(正如您提到的)并利用共享缓存。网上有几个如何使用它的示例。

但是,如果没有其他问题,这些解决方案都会带来一些额外的开销(例如网络和第三进程处理以及数据获取等)。因此,默认缓存是最快的,如果您明确需要共享缓存,请决定使用一个。除非确实必要,否则不要共享缓存。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

使 ASP.NET MVC 应用程序为 Web Farm 做好准备 的相关文章

随机推荐

  • 为什么 tSQLt 测试在 Visual Studio 测试资源管理器中会通过,而它应该失败?

    我正在编写一些 tSQLt 测试并通过 Visual Studio 的测试资源管理器运行它们tSQLt 测试适配器 https the agilesql club blogs Ed Elliott tSQLt Visual Studio T
  • Heroku Gem 安装后无法使用

    我正在尝试让 heroku 在 Ubuntu 9 10 上运行 I typed sudo gem install heroku 一切正常 但是当我去跑步时 heroku list I get heroku 找不到命令 run 宝石环保看看哪
  • 如何让 git 在 vi​​m 中显示更改,就像 hg 使用 hgeditor 脚本那样?

    Mercurial 的一个有趣的功能是能够查看将在 vim split 中提交的更改 请参阅VIM 中的 DiffsInCommitMessage https www mercurial scm org wiki DiffsInCommit
  • 隐藏折线的正确方法?

    我有一个在地图上显示折线的函数 这部分正在工作 现在我想实现一个隐藏折线的函数 但我找不到我的错误 提前致谢 function cargaMapaCYL mapa varControl var limite null limite new
  • python什么时候删除变量?

    我知道 python 有一个自动垃圾收集器 因此当不再引用变量时 它应该自动删除变量 我的印象是 局部变量 函数内部 不会发生这种情况 def funz z x f z x is a np array and contains a lot
  • Hazelcast 可序列化映射 ClassNotFound 异常

    我正在尝试在一个简单的 Web 应用程序中实现 Hazelcast 我正在尝试将自定义对象存储到我的 Hazelcast Map 中 并在我的 Bid 对象类中实现 Serialized 并进行必要的导入 import java io Se
  • 迅速关闭模态并推送到新的 VC

    我有 tableview 1 表显示一个新的模式窗口 当我按下按钮时 我想关闭模式窗口并推送到 VC 我的代码仅隐藏模式视图 但不进行推送 IBAction func registrationBtn sender AnyObject let
  • Android CardView 删除填充

    我如何摆脱下面布局中的这种奇怪的填充
  • 字符串前后的通配符 - MySql、PSQL

    我需要执行Contains列中的操作 对于包含操作 我们需要在单词前后使用通配符 例如 个性化 查询 gt like sonal 因为这种类型的查询不能使用索引 有什么办法可以提高搜索速度 注意 我使用MySql InnoDB 和PSQL
  • Backbone.js / Marionette.js 中的路由 - 无主题标签、路由列表和子路由器

    我对 Backbone js Marionette js 中的路由有三个问题 1 如何获取我的应用程序路由器已注册的所有路由的列表 例如对于 Express js 在 Node js 中 它将是app routes 我尝试对 Backbon
  • Linux c++:api 与 /proc 文件?

    我正在开发一个应用程序来收集和发送各种系统信息 分区空间 可用空间 笔记本电脑电池信息等 我没有成功地以直接 c api 的形式获取这些信息 尽管它都可以通过 proc 或类似 中的文件获得 所以 我想知道在我的 C 应用程序中读取 解析这
  • 如何获取 bash 中的第 n 个位置参数?

    如何获得nBash 中的第一个位置参数 其中n是变量吗 使用 Bash 的间接功能 bin bash n 3 echo n 运行该文件 ind apple banana cantaloupe dates 生产 cantaloupe Edit
  • Minecraft Forge 1.8 - 加载块纹理

    我刚刚开始学习 Java 同时修改 Minecraft 我看过有关使用 Minecraft Forge API 将块添加到游戏中的教程 但我遇到了问题 不再有 setBlockTextureName 方法 所以我不知道该怎么办 我在游戏中添
  • css 中 & 的作用是什么

    我正在查看一些遗留代码 并在 css 文件中发现如下内容 user modal width auto height auto modal fade in margin top 0 margin left 0 top 83px 这里 的目的是
  • 向后滑动 - InteractivePopGestureRecognizer 不起作用

    我有像这张照片这样的屏幕 HomeViewController 将推送到 maintabbar 并且选项卡栏项目将推送到detailScreen 为什么向后滑动不起作用 我认为这是IOS默认的 请帮我 p s 如果我在 cocoapods
  • 奇怪的 bash 脚本行为 - 生成的命令在复制粘贴时有效,但在脚本中无效

    出于安全原因 我编写了一个简短的 bash 脚本来包装 ansible playbook 命令 这并不复杂 而且大部分脚本在这里都是无关紧要的 最后 我将脚本参数生成的变量中的 ansible 命令放在一起 如下所示 ansible pla
  • Spring:文件上传RESTFUL Web服务

    我正在使用 Spring 4 0 为 RESTFUL Web 服务创建 POC 如果我们只传递字符串或任何其他基本数据类型 它就可以正常工作 RequestMapping value upload file method RequestMa
  • 适用于 MYSQL 的 Logstash Jdbc 输入插件

    我在 Windows 中使用 Logstash 我无法安装输入 jdbc 插件 因此我手动下载了 zip 文件 并将插件中的logstash 文件夹放入我的logstash 1 5 2 文件夹中 文件夹结构 D elastic search
  • Matplotlibight_layout——删除多余的白色/空白区域

    我想尽量减少人物周围的空白 但不确定如何 a 为我的图像周围的 savefig 命令精确指定一个边界框 并且 b 为什么紧密布局命令在我的工作示例中不起作用 In my current example I set up an axis en
  • 使 ASP.NET MVC 应用程序为 Web Farm 做好准备

    使 ASP NET MVC 应用程序 Web 场做好准备的最有效方法是什么 最重要的是共享当前用户的信息 上下文 和 不太重要 缓存的对象 例如查找项目 州 街道类型 县等 我听说过 读过 MemCache 但还没有看到关于如何实现和测试它