gpt4 book ai didi

ASP.Net session 状态

转载 作者:行者123 更新时间:2023-12-01 23:35:29 24 4
gpt4 key购买 nike

我想知道是否可以根据应用程序运行的域更改用于 ASP.net 中 SessionState 的 sqlConnectionString?

一个场景;我们有 20 个站点从一个应用程序运行,所有站点都与不同的数据库通信,具体取决于它们从哪个域(站点)浏览。

当浏览 www.domain1.com 时,应用程序会与数据库“db1”对话。另一方面,站点 www.domain2.com 与数据库“db2”等进行对话,从而选择相关内容并将负载分散到每个数据库,而不是使用一个主数据库来处理站点的所有连接。

但出现了一个问题 - 对于此设置,我们对 SessionState 使用 SqlServer 模式,因此所有站点 session 的所有用户都存储在 1 个 aspstate 数据库中,现在随着站点变得更加繁忙/站点数量增加,该数据库正在增加紧张地处理所有站点的所有 session 请求,我们开始收到一些超时错误,其中与此数据库的连接出现瓶颈。

我们可以将站点从它们自己的应用程序中分离出来,并使用相同的代码设置不同的应用程序,但在每个应用程序中,在每个 Web.Config 中设置不同的 Session 数据库,从而减轻负载。虽然这项任务会非常耗时,但从长远来看会导致更多的管理。所以.. 我很想知道是否可以在创建 session 对象之前基于域在代码中修改用于 SessionState 的 sqlConnectionString?我们可以从 System.Web.HttpApplication 继承并使用 Application_AcquireRequestState 事件来创建所需的 HttpSessionState 对象设置吗?

希望这是有道理的,希望有人能提供一些指导并向我证明这不是白日梦!

干杯,史蒂夫

最佳答案

我认为您遗漏了一个重点——如果瓶颈是 sql server,将东西放在同一台服务器上的不同数据库中根本无济于事——它要么是 SQL 空间不足,要么是网络带宽用完。在做任何事情之前,我会试着找出它是哪一个。

关于ASP.Net session 状态,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/990582/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com