session丢失问题,今天搜到两种好的解决方案,一是用StateServer
 <sessionState mode="StateServer"
    stateConnectionString="tcpip=127.0.0.1:42424"
    sqlConnectionString="data source=127.0.0.1;Trusted_Connection=yes"
    cookieless="false"
    timeout="300"
    stateNetworkTimeout="14400"
                  />
二是用
 <sessionState mode="SQLServer"
 sqlConnectionString="data source=localhost; Integrated Security=SSPI;" 
    cookieless="false"
    timeout="300"
    stateNetworkTimeout="14400"
                  />
但第一种方法要启动ASP.NET State Service,我的ASP.NET State Service启动20秒后无操作就自动关闭了,所以要频繁开启,但我的其他'服务'里的选项如sql server等一开启我不手动关闭他是不会自动关闭的,看网上说ASP.NET State Service启动后默认10秒内无操作就自动关闭,
请问我的怎么是20秒的?我似乎没改动啥设置啊。还有我设置  stateNetworkTimeout="14400"这么大怎么不管用的?
关于SQLServer的解决方法,(我的是win xp,vs 2008)我用sql server managerment studio express运行InstallSqlState.sql后,出现错误,报错:無法判斷項目在資料庫 'ASPState' 的 sysdatabases 中的位置。找不到該名稱的項目。請確定名稱輸入正確。(我用的是繁体中文的vs,不过这应该不会是问题所在),请教大家这错误该咋弄?如果哪位大哥有自己的InstallSqlState.sql,也麻烦附一份给我,
在C:\WINDOWS\Microsoft.NET\Framework\v2.0.50727目录下,谢啦!!
问题问得比较琐碎,还请大家帮忙!!

解决方案 »

  1.   

    补充下:或者谁告诉我怎么改变ASP.NET State Service的默认服务关闭时间,我把它改大点就行啦。我已将ASP.NET State Service的启动类型设为自动,但它启动又自动关闭后,我再要用它还得手动开启
      

  2.   

    web.config 的sessionStatetimeout="20" ?
      

  3.   

    web.config 里全文搜索了下,没有发现sessionStatetimeout字样,不过还是谢谢回答,期待更多的人来
      

  4.   

    如果有一天,你的程序部署到别人的服务器上,例如空间商的服务器上,那时候你再去“折腾”StateServer或者SQLServer就烦死了,受人所制。所以,我认为最好的一种经验做法是从一开始就放弃使用Session集合。
      

  5.   

    参考:
    http://www.cnblogs.com/huangbaixun/archive/2008/10/09/1307235.html
      

  6.   

    如果你装了vs,本地应该有msdn。在msdn上至少7、8篇文章跟应用程序状态有关。例如:http://msdn.microsoft.com/zh-cn/library/ms178586.aspx也可以简单地google一下:http://www.google.cn/search?hl=zh-CN&newwindow=1&rls=com.microsoft%3A*%3AIE-SearchBox&rlz=1I7GGIJ&q=asp.net+%E5%BA%94%E7%94%A8%E7%A8%8B%E5%BA%8F%E7%8A%B6%E6%80%81+%E4%BC%9A%E8%AF%9D%E7%8A%B6%E6%80%81+%22sql+server%22&meta=&aq=f&oq=
      

  7.   

    郁闷,校园网上不了这几个网。
    Session用多了容易出现丢失
      

  8.   

    我用的是启动ASP.NET State Service的方法。1.在系统-》服务,里面,把ASP.NET State Service启动并设置为自动启动。2.web.config里面的配置:<sessionState mode="StateServer" stateConnectionString="tcpip=127.0.0.1:42424"
    cookieless="false" timeout="60" />
    我这里的,timeout默认是20分钟。
    我设置的是一个小时。你可以设置的长一些。
    我试过,在一个小时内,是不会出现session超时现象的。
      

  9.   


    没有用过校园网。不过你可以google“网页代理”,看看有没有可以用的代理。
      

  10.   

    好的解决方案就是不用它,用cookies
      

  11.   

    1.使用进程内会话状态模式时,如果 aspnet_wp.exe 或应用程序域重新启动,则会话状态数据将丢失。这些重新启动通常会在下面的情况中发生:  
    在应用程序的 Web.config 文件的 <processModel> 元素中,设置一个导致新进程在条件被满足时启动的属性,例如 memoryLimit。  
    修改 Global.asax 或 Web.config 文件。  
    更改到 Web 应用程序的 Bin 目录。  
    用杀毒软件扫描并修改 Global.asax 文件、Web.config 文件或 Web 应用程序的 Bin 目录下的文件。  
    如果在应用程序的 Web.config 文件的 <processModel> 元素中启用了网络园模式,请不要使用进程内会话状态模式。否则将发生随机数据丢失。
    2.在第一个页面置了SESSION,然后REDIRECT去第二个页面。解决方法是在REDIRECT中设置endResponse为FALSE。3.你的代码有问题,在进行某一个操作时占用了大量的资源造成IIS进程,aspnet_wp.exe或者iis6中的w3wp.exe进程重启
      

  12.   

    我发现我的asp net state service服务设为自动后开启20秒会自动关闭,我的其他'服务'里的选项如sql server等一开启我不手动关闭他是不会自动关闭的,我的朋友的机子却不这样,他的asp net state service已开启,就在那儿运行了,大家知道怎么配置让asp net state service一直运行吗?
      

  13.   

    我自己解决了,装ASPState成功
      

  14.   

    请问楼主有没有报一下错误
    If the job does not exist, an error from msdb.dbo.sp_delete_job is expected.
    消息 14262,级别 16,状态 1,过程 sp_verify_job_identifiers,第 67 行
    指定的 @job_name ('ASPState_Job_DeleteExpiredSessions')不存在。
    If the category already exists, an error from msdb.dbo.sp_add_category is expected.
    消息 14261,级别 16,状态 1,过程 sp_add_category,第 32 行
    指定的 @name ('[Uncategorized (Local)]')已存在。