【问题标题】:Understanding session in a large asp.net application了解大型 asp.net 应用程序中的会话
【发布时间】:2013-03-26 14:15:01
【问题描述】:

我有一个不寻常的网络应用程序,在某些方面类似于DriveWorksKBmax 的实时版本。 Logic、Interface 和 Tables 由整个公司的销售团队和工程师在 Windows 应用程序中创建并存储在 sql server 中。在 Web 应用程序中,当用户单击产品菜单中的项目时,将从数据库中提取逻辑和接口,使用 CodeDOM 编译成 InMemory 可执行文件并存储在 Session 变量中。 Web 应用程序中的 Front 接口是动态的,并在会话中为控制逻辑事件调用可执行文件。表也​​存储在 Session 中的 DataSet 中。无论如何,这一切都确实有效,但似乎有一些难以确定的随机怪癖。我想知道这是否可以在会话和替代方案中投入太多。

注意:我尽可能使用 javascripting,但是由于代码实际上是由其他用户创建的,因此也有很多回发。当我使用本地主机运行它时,它似乎可以运行,但在主机服务器上它似乎很笨重。 我有这个与 Windows 应用程序相同的应用程序,它运行良好,只是尝试制作网络版本。

【问题讨论】:

  • 您在会话中投入的越多,服务器上的负载就越大。基本规则是更多的用户因此增加了会话使用率,因此需要更多的 RAM。您是否查看过在每次页面加载时加载所需的代码等?请记住,如果您使用没有服务器关联的负载平衡,则必须使用会话服务器或 SQL Server 会话存储。
  • @JamesCulshaw 是的,我只加载代码和数据集一次。但是我必须在每次回发时创建 50 多个动态界面控件。我想我对会话服务器不熟悉,我会研究一下。
  • @JamesCulshaw 我的意思是说我不熟悉 SQL Server 会话存储。我查看了它,但似乎它可能会更慢。当我使用 localHost 运行应用程序时,它运行得非常快。主机服务器上是否还有其他设置可以加快速度?

标签: javascript asp.net visual-studio-2010 web-applications


【解决方案1】:

如果使用 64 位进程,使用 session 应该没有问题。如果使用 32 位进程,您应该查看 out-proc (db / windows server AppFabric)。关于随机怪癖,我猜与代码有关。

【讨论】:

  • 你是指目标 CPU 还是编译 CodeDOM 可执行文件?我想我不确定。
  • 我的意思是 w3wp 进程..在 IIS 中有一个设置来指示进程应该是 32 位还是 64 位(此选项仅适用于 64 位服务器)。目标 cpu 如果没有对 com 的引用,则将其保留为任何 cpu。
猜你喜欢
  • 1970-01-01
  • 2013-03-26
  • 2011-11-24
  • 2011-03-10
  • 2011-06-25
  • 1970-01-01
  • 2010-09-16
  • 1970-01-01
  • 2013-05-31
相关资源
最近更新 更多