会话状态(服务器端)
好吧我相信这是非常明显的。但是当你说会话状态被保存在内存中的“服务器”时,我们是在谈论IIS还是什么?当我想到服务器端会话状态时,我认为在IIS应用程序池等方面的内存。我在这里基地或失踪?会话状态(服务器端)
http://msdn.microsoft.com/en-us/library/75x4ha6s.aspx
术语 “服务器” 可能意味着很多东西。确定它是“服务器端”,但服务器上的具体过程/内存/区域/应用程序是我们在谈论(仅限IIS?其他?)
我希望MS会解释他们的意思,因为这是相对的。
具体这个,
Storing Data on the Server (in memory)
• Session state
• Application state
• Profile Properties
所以“在服务器上的”在内存中,哪些进程“在服务器上存储” /应用程序正在处理每一种?
“当然是”服务器“边”,但是我们在讨论什么特定的进程/内存/区域/应用程序在服务器上(仅适用于IIS?其他?)”
每个站点上运行应用程序池中的每个应用程序池是Web服务器上的进程。如果您的会话配置成在过程中,您的会话对象将被存储在该进程的内存
这就是我所设想的。工作进程/应用程序池。我相信每个应用程序池都有一个工作进程正在运行......但我需要验证这一点。 – PositiveGuy 2010-10-23 01:23:19
这是正确的,但如果你在32位的操作系统,只允许约600MB的堆。工作过程每29小时重新启动一次,清除那里的内存 - 如果您需要确保它不丢失(不依赖于应用程序),则不应使用inproc会话状态, – 2011-06-27 12:55:00
这取决于。默认情况下,它位于工作进程内存中,但可以位于专用的状态服务器上,也可以位于SQL或您自己的自定义提供程序中。
从MSDN:
ASP.NET会话状态支持会话数据几种不同的存储选项。每个选项都由SessionStateMode枚举中的值标识。下面的列表描述了可用的会话状态模式:
是InProc模式,存储在Web服务器上存储会话状态。这是默认设置。
StateServer模式,它将会话状态存储在称为ASP.NET状态服务的单独进程中。这可确保在重新启动Web应用程序时保留会话状态,并使Web会话中的多个Web服务器可以使用会话状态。
SQLServer模式将会话状态存储在SQL Server数据库中。这可确保在重新启动Web应用程序时保留会话状态,并使Web会话中的多个Web服务器可以使用会话状态。
自定义模式,使您可以指定自定义存储提供程序。
关闭模式,禁用会话状态。
好了工作进程是IIS的一部分我相信。 – PositiveGuy 2010-10-22 23:54:18
没有请问我的问题。我问服务器上有什么进程和内存。 – PositiveGuy 2010-10-23 01:24:34
@CoffeeAddict - 你的问题的答案是我答案的第二句“默认情况下它在工作进程内存中”。根据Dustin的回答,每个应用程序池都有一个工作进程。如果您查看任务管理器,则会看到在w3wp.exe下为IIS 7应用程序池发生的分配情况。 – jball 2010-10-23 04:42:02
ASP.NET只是一个框架;它是一个类的集合,并且它们执行代码。这是为您提供会话状态的代码,它将有关会话状态的信息存储在某些对象中,就像字典或类似语言一样。
(在做在PROC,那么你有状态服务器,SQL服务器和自定义,在自定义可以是任何东西,只要有人写一些代码实施正确的接口)
我没有得到我想要的这个概率,因为我的问题太笼统了。下面是该页面的一个例子...在处理 o \t当下一个用户请求一个页面时,会创建一个新的Session对象用户 – PositiveGuy 2010-10-23 00:00:09
好吧那么管理这个对象的IIS是什么? – PositiveGuy 2010-10-23 00:00:32
问题已经更新了更具体和清晰 – PositiveGuy 2010-10-23 00:07:19