扩展 ASP.NET 应用程序

2024-04-15

这是一个非常广泛的问题,但希望我能得到有用的提示。目前我有一个在单个服务器上运行的 ASP.NET 应用程序。我现在需要进行扩展以适应不断增加的客户负载。所以我的计划是:

1) 将 ASP.NET 和 Web 组件扩展到五台服务器上。

2) 将数据库移至场中。

我不认为数据库会出现问题,因为就应用程序而言,它只是一个 IP 地址。然而,我现在担心 ASP.NET 和 Web 层。我已经担心的一些问题:

  • 最简单的模型是否是仅实现一个负载均衡器,以循环方式将请求分派给五台服务器中的每台服务器?

  • 既然 HTTPS 和 SSL 连接每次发出请求时都可以在不同的物理服务器上终止,那么它们是否存在任何问题? (例如,性能?)

  • 对于通过 cookie 进行会话维护(登录)是否存在任何问题?我的猜测是否定的,但无法完全解释为什么......;-)

  • 会话数据本身(存储的服务器端)是否有任何问题?显然,我需要在服务器之间复制会话状态,或者以某种方式强制请求仅发送到单个服务器。不管怎样,我在这里看到一个问题......


正如 David 所指出的,这个问题的大部分实际上更多的是管理问题,并且可能对 ServerFault 有用。他发布的链接有很好的信息值得仔细研究。

为您Session问题:您将需要查看会话状态服务(作为 IIS 附带的独立服务,用于维护多个服务器之间的公共状态)和/或将 ASP.NET 会话状态存储在 SQL 数据库中。我确信,您可以在 David Stratton 的链接中找到这两个选项。

很大程度上来说,一旦设置了进程外会话状态,它就变得透明了。它确实需要您存储Serializable不过,Session 中的对象。


是的,循环 DNS 是这种情况下最简单的负载平衡方法。它没有考虑每台服务器的实际负载,也没有规定一台服务器何时可能停机维护;任何获得该特定 IP 的人都会看到该站点“已关闭”,即使其他四台服务器可能正在运行。

负载平衡和处理 SSL 连接可能都受益于反向代理类型的情况;代理处理所有传入的连接,但它所做的只是加密和平衡 Web 服务器的实际请求负载。 (当然,这些问题更多的是政府方面的问题,但是......)


如果所有 Web 服务器都将自己宣传为同一网站(通过主机标头等),Cookie 不会成为问题。每个服务器都会很乐意接受使用相同域名的任何其他服务器设置的cookie,而不知道或关心哪个服务器发送它;它基于 Web 浏览器获取 cookie 值时所连接的服务器的主机名。

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

扩展 ASP.NET 应用程序 的相关文章

  • 如何解决“HTTP 错误 404.3 - 未找到”错误?

    简单的问题 我启动 VS2008 并创建一个新的 WCF 服务应用程序 这将创建一个默认应用程序 并使用一些测试方法来显示它的工作原理 我按 CTRL F5 确实有效 伟大的 但是 它使用 Visual Studio 开发服务器 我不想支持
  • 是否有一种快速替代方法可以从 XNA 中的位图对象创建 Texture2D?

    我环顾四周 发现从位图创建Texture2D的唯一方法是 using MemoryStream s new MemoryStream bmp Save s System Drawing Imaging ImageFormat Png s S
  • Windows Server / Datacenter:设置 CPU 关联性 > 64 个核心

    SetThreadAffinityMask 允许为 64 个逻辑核心 处理器 设置关联掩码 但是 Windows Datacenter 最多可以有 64 个 CPU 每个 CPU 都有多个内核 请参阅here http social tec
  • Linux 缓冲区溢出环境变量

    我一直在审查不同类型的缓冲区溢出 并遇到了一个我不记得为什么会发生的问题 下面的代码是我尝试执行缓冲区溢出的程序 include
  • C# 按下按钮时跳出循环

    我有一个简单的 C foreach 循环 如何在按下按钮时跳出循环 它不在backgroundWorker线程中 所以我不能使用backgroundWorker Cancellation Pending 在表单中创建一个布尔标志 将事件处理
  • 如何更改 GridView 内 ListViewItemPresenter 中的 SelectedBackground

    我在 SubSection 中有一个 Clickable Gridview
  • 将 CryptoStream 解密为 MemoryStream

    我编写了一个过程 其中文件被加密并上传到 Azure 然后必须解密下载过程 这会失败并出现 填充无效且无法删除 错误 或 要解密的数据长度为无效的 错误 我在网上尝试了很多解决方案 包括C 使用 RijndaelManaged 和 Cryp
  • JObject ToString 与 StringEnumConverter 不起作用

    我正在尝试序列化一个匿名类 如下所示 public enum ErrorCode A B C var response JObject FromObject new Error new Message Test Code ErrorCode
  • 如何设置属性选择器的值 Expression>

    我需要使用模式工厂的想法将 Person 类实体中的实体属性 Address 与 FactoryEntities 类中的表达式 linq 相关联 看看这就是我所拥有的并且我想要做的 Address address new Address a
  • 在 C++ 中重用异常处理代码

    我有这两个函数 具有重复的异常处理 其唯一目的是显示错误消息 void func1 noexcept try do task do another task catch const std out of range e show msg O
  • 有没有一种方法可以在不测试整个应用程序的情况下对类库(通用 Windows)进行单元测试?

    我需要进行单元测试Class Library Universal Windows 但是从 添加新项目 窗口中 我只看到了这一点 该项目使用应用程序容器运行所有测试 它始终打开一个应用程序 由于我不需要所有这些开销 我想知道是否有一种方法可以
  • 如何对具有无效值的属性使用 JSON.net 的默认值

    我正在使用 Newtonsoft JSON 库来反序列化来自 Web 服务的响应 问题是某些字段包含无效值 例如 一条记录上的一个字段包含一个 T 表示该字段应该是数字 我想做的是将无效字段的值设置为 null 或其他默认值 我的所有属性都
  • 拦截C# HttpClient GetAsync

    我有一个 Web 项目 C MVC5 但没有 WebAPI 和一个简单的 HTTP REST 客户端 该客户端调用外部 REST 服务并获取 accessToken 等 我想检查所有 Get PostAsync 调用对 statusCode
  • 向页面添加多个相同类型的用户控件

    已经有人问过与此类似的问题 但似乎没有一个问题能解决我的具体情况 这就是我正在尝试做的事情 我有一个管理学生信息的用户控件 即名字 姓氏 地址等 我有一个网页 表单 上面有一个按钮 添加学生 我想要完成的是每次单击后将新的 StudentI
  • 如何在c#中打印全尺寸图像

    我正在尝试用 C 打印图像 它是由 Adob e Acrobat 从 PDF 创建的完整 8 5x11 尺寸的 tiff 当我使用下面的代码用 C 打印它时 它垂直打印正确 但水平打印不正确 水平方向被推了大约半英寸 我将图像的原点设置为
  • 如何避免函数的多重定义(Linux、GCC/G++、Code::Blocks)

    我有一个代码块项目 它使用许多不同的文件 通常是由其他程序员编写的 目前我遇到的情况是 我有两个不同的子项目 其中包含以相同方式命名的函数 比方说 F int x 因此 F int x 是在两个不同位置的两个源文件中定义的 并且它们有两个不
  • 初学者友好的方法来获取所有文件和目录的列表

    使用 NET 3 0 我得到了下面的方法 它可以正确返回指定目录的所有文件和目录 以及子目录 的集合 如果可能的话 我想将其简化为仅使用我非常熟悉的结构 具体来说 有以下几点我不太清楚 1 IEnumerable
  • 使用C#在SQL Server上执行sql文件

    我有很多程序 视图 函数等文件 我想在 SQL Server 2005 2008 上的适当数据库中执行这些文件 创建组件 还有一点是我想使用 C 来执行它们 另一点需要提及的是 我希望应用程序也可以在远程 SQL Server 上执行此文件
  • IIS ARR - 反向代理的 URL 重写 - 如何发送 HTTP_HOST

    尝试在多个后端 IIS 服务器前面使用 AAR 作为反向代理 分配给运行 IIS AAR 的服务器的一个公共 IP 地址 然后出站 URL 重写规则设置为重定向到以下之一 多个后端服务器 具体取决于主机名 有点工作 但总是返回后端服务器默认
  • 在.Net中使用ObjectCache缓存对象并设置过期时间

    我陷入了一个场景 我的代码如下 更新 它不是关于如何使用数据缓存 我已经在使用它及其工作 它是关于扩展它 以便该方法在到期时间和从外部源获取新数据之间不会进行调用 object string this GetDataFromCache ca

随机推荐

  • 如何打开与 GOPATH 相关的文件?

    我在用着io ioutil读取一个小文本文件 fileBytes err ioutil ReadFile absolute path to file txt 这工作得很好 但这并不完全便携 就我而言 我要打开的文件位于我的 GOPATH 中
  • 如何对特定消息做出反应 (discord.py)

    我正在编写一个建议机器人 该机器人应该将玩家的建议发送到我的服务器中的建议频道 并在建议频道中使用一些表情符号做出反应 问题是 使用 消息 作为消息参数会对发送来触发代码的消息做出反应 但我希望它对机器人发送到建议通道的消息做出反应 我对编
  • 从任何地方关闭 javascript-popup-window

    我正在尝试构建一个可以从任何地方关闭的弹出窗口 在主页上 您可以选择打开它 在浏览主页时的任何时候 用户都可以再次关闭它 我找到了这个基本的弹出控件 function popuponclick my window window open m
  • 如何阻止 IDE 在我的非 Windows 项目中引用 Windows 特定的 XML 单元?

    我想在 Delphi XE5 中创建一个 Android 程序来处理 XML 文件 我用TXMLDocument 但我无法编译并运行它 因为 Delphi 反复添加Xml Win msxmldom in the uses部分 出现以下错误
  • ModuleNotFoundError:没有名为“win10toast”的模块; bs4.FeatureNotFound:找不到具有您请求的功能的树构建器:lxml

    我已经使用 pip 命令安装了它们 它显示它已安装但无法工作 我还更新了 pip 的版本 但它仍然显示更新 pip 的命令 C Users DELL gt pip install win10toast Requirement already
  • 加速用于 FDR 估计的 MATLAB 代码

    我有 2 个输入变量 p 值向量 p with N元素 未排序 and N x M具有通过随机排列获得的 p 值的矩阵 pr with M迭代 N相当大 10K到100K甚至更多 M假设是 100 我正在估计每个元素的错误发现率 FDR p
  • 使用 JSP 的 Request.getParameter

    我正在尝试根据请求参数自动填充下拉列表 我对 JSP 还很陌生 所以请原谅我问这个简单的问题 以下工作正常并正确显示警报 alert 所以我知道我想做的事情很简单 但是当我使用以下命令将相同的逻辑添加到我的 select 语句中时
  • 添加到 hashmap 需要很长时间

    我在我的java程序中坚持了几行 这花费了太多时间 大约20秒 而且对我来说这似乎很奇怪 这是线条 Map
  • 从随机字符串中查找单词列表中的单词

    我正在开发一个解读类型的程序 用户可以输入随机字母 程序会迭代这些字母和单词列表 以尝试找到包含单词列表中的这些部分或全部随机字母的单词 例如 if Input sasdfle words found in wordlist sad fle
  • 实体框架首先选择不带 .ToList() 的新 POCO

    我正在创建一个具有服务层 WCF 网站 和 Silverlight 4 客户端的应用程序 RIA 服务不是一种选择 因此我们创建中间类来来回传递 为了这个问题的目的 我们假设我来回传递美味Food对象 public class FoodDa
  • 使用knockout js实现html5拖放照片,durandal 2.0

    我在淘汰赛 js 视图模型中有一个照片列表 我希望能够在它们之间交换 实际上更正确的术语是将一张复制到另一张上面 这是我的简化视图模型 define durandal app knockout jquery function app ko
  • jQuery UI 日期选择器导致屏幕在选择日期后滚动到顶部

    我在 jQuery 对话框中有几个 jQuery 日期选择器 每当用户从日期选择器中选择日期时 屏幕就会滚动到顶部 这种情况只发生在 IE8 中 而不会发生在 Firefox 3 6 或 Chrome 5 中 由于大多数用户都会使用 IE
  • 如何在 CloudKit 中撤销用户的可发现性权限?

    我很好奇用户是否可以以某种方式更改可发现性权限 我在设置里没找到方法 您可以在您的设备上进行设置Settings iCloud iCloud Drive Find via Email
  • jenkins 擦除存储库并强制克隆与结帐前清理

    我试图了解用于拉取 git 存储库的 擦除存储库并强制克隆 和 签出前清理 这两个选项之间的区别 查看这两个选项的帮助部分 两者似乎都有相似的功能 我无法找出区别 它们的外观如下 清除存储库并强制克隆 在构建之前删除工作区的内容 确保工作区
  • 使用node.js os.cpus()来检测用户空闲时间?

    我正在使用 appjs 开发一个聊天应用程序 该应用程序使用 node js 作为平台 我一直在检测计算机何时处于空闲状态 当用户离开它或不使用它时 Node js 中有 os 模块及其os cpus 为每个核心提供此类信息 model I
  • 如何在不更改原始列表的情况下更改新列表?

    我有一个列表 其中填充了操作中的一些数据 并将其存储在内存缓存中 现在我想要另一个列表 其中包含基于某些条件的列表中的一些子数据 正如下面的代码所示 我正在对目标列表进行一些操作 问题是我对目标列表所做的任何更改也会对 mainList 进
  • 如何防止用户在文本框中输入特殊字符[重复]

    这个问题在这里已经有答案了 我需要验证文本框中的密码条目 我有一些要求需要满足 以便允许创建用户配置文件 其中之一是如果密码包含除数字和字母以外的任何其他内容 则拒绝注册系统需要拒绝进入 我尝试的一切似乎都失败了 这就是我现在站的地方 pr
  • 编译 eigen 程序时出错:错误:'seq' 不是 'Eigen' 的成员

    我试图在遵循算术序列的索引中索引矩阵 根据官网的Eigen教程 我应该使用Eigen seq firstVal lastVal step 来生成这个序列 调用此函数后 会弹出该线程标题中粘贴的错误 我检查了本地 eigen 文件夹中的所有文
  • 如何在 python-docx 中获取单元格背景颜色?

    我正在尝试使用 python docx 从 MS Word 表中读取数据 有一种方法可以设置表格单元格的背景颜色 tcPr cell tc get or add tcPr shd OxmlElement w shd shd set qn w
  • 扩展 ASP.NET 应用程序

    这是一个非常广泛的问题 但希望我能得到有用的提示 目前我有一个在单个服务器上运行的 ASP NET 应用程序 我现在需要进行扩展以适应不断增加的客户负载 所以我的计划是 1 将 ASP NET 和 Web 组件扩展到五台服务器上 2 将数据