无法向会话状态服务器发出会话状态请求。请确保 ASP.NET State Service (ASP.NET
方法一.Web.Config里面 把sessionState 的mode改为"InProc"(缺省模式)
在Web.Config里面:
<sessionState mode="InProc" stateConnectionString="tcpip=127.0.0.1:42424" sqlConnectionString="data source=127.0.0.1;user id=sa;password=" cookieless="false" timeout="20" />
如果是StateServer,即说明这个状态服务是采用远程服务器模式,需要设置服务器的字符串和密码等参数.
方法二.在windows服务中启用"ASP.NET State service"
Session模型简介
Session是什么呢?简单来说就是服务器给客户端的一个编号。当一台WWW服务器运行时,可能有若干个用户浏览正在运正在这台服务器上的网站。当每个用户首次与这台WWW服务器建立连接时,他就与这个服务器建立了一个Session,同时服务器会自动为其分配一个SessionID,用以标识这个用户的唯一身份。这个SessionID是由WWW服务器随机产生的一个由24个字符组成的字符串,我们会在下面的实验中见到它的实际样子。
这个唯一的SessionID是有很大的实际意义的。当一个用户提交了表单时,浏览器会将用户的SessionID自动附加在HTTP头信息中,(这是浏览器的自动功能,用户不会察觉到),当服务器处理完这个表单后,将结果返回给SessionID所对应的用户。试想,如果没有SessionID,当有两个用户同时进行注册时,服务器怎样才能知道到底是哪个用户提交了哪个表单呢。
Web.config文件中的Session配置信息
打开某个应用程序的配置文件Web.config后,我们会发现以下这段:
<sessionState
mode="InProc"
stateConnectionString="tcpip=127.0.0.1:42424"
sqlConnectionString="data source=127.0.0.1;Trusted_Connection=yes"
cookieless="false"
timeout="20"
/>
其中mode 设置将Session信息存储到哪里,Off 设置为不使用Session功能;InProc 设置为将Session存储在进程内,就是ASP中的存储方式,这是默认值;StateServer 设置为将Session存储在独立的状态服务中;SQLServer 设置将Session存储在SQL Server中.