就是在我做的一个网站下,象登陆那些页面,管理页面,都可以。
主要是Session,那些页面都存在。可以存取。
但在outs目录下的程序,一样的写法,他就没有了。
比如一个验证码,在首页登陆时调用那个code.aspx,会有Session,但在这个目录下他就没有了。
写其他Session也不能取得,都为null,而ViewState却可以。
最奇怪的还是,在我本地,都是对的,什么页面的Session都有,但放在服务器上后,就那几个页面没有,其他的地方都有 
代码是对的,如果不对,本地不应该正常。
服务器和本地都是2003的系统 。
后来我找到一中说法:<sessionState mode='InProc' stateConnectionString='tcpip=127.0.0.1:42424' sqlConnectionString='data source=127.0.0.1;Trusted_Connection=yes' cookieless='true' timeout='60'/>我们会发现sessionState标签中有个属性mode,它可以有3种取值:InProc、StateServer,SQLServer(大小写敏感) 。默认情况下是InProc,也就是将Session保存在进程内(IIS5是aspnet_wp.exe,而IIS6是W3wp.exe),这个进程不稳定,在某些事件发生时,进程会重起,所以造成了存储在该进程内的Session丢失。解决办法:不用要InProc模式,而采用StateServer模式,同时将服务中的"ASP.NET 状态服务"设置为自动启用,这样的话,session就不依赖于某一进程了,另外还可以将Session保存到SqlServer数据库中将Web.Config文件中关于Session的设定如下:
<sessionState mode=′StateServer′ stateConnectionString=′tcpip=127.0.0.1′ sqlConnectionString=′data source=127.0.0.1;Trusted_Connection=yes′ cookieless=′true′ timeout=′60′/>
但这样改了以后却还是不行。
实在不解啊!!

解决方案 »

  1.   

    http://community.csdn.net/Expert/topic/5548/5548911.xml?temp=.2481501
    再请帮忙看看这个问题。
      

  2.   

    但是其他页面却是正常的啊,都是一个应用程序,也都是用的一个iis进程啊!
    如果真是设置问题,请问一下具体什么地方呢?
      

  3.   

    看来不是session丢失所引起的,session丢失是随机的,不可能总发生在同样几个页面,何况开启了aspnet_state建议,跟踪执行全过程,找出session在什么时候变为null还有,是outs目录下所有页面取session都是null还是个别页面?
      

  4.   

    我刚才测试了其他页面,但在现有页面测试的时候,莫名其妙的报错。等我新建一个页面传上去后,已有的页面却不报错了。
    经过测试,在其他页面可以存取Session。
    然后发现在Session丢失的页面里,比如在同一个方法或事件下,先存Session,再取出并打印它,它的值就能获得,但当页面一运行完,显示出来就丢失了。
      

  5.   

    现在发现一个新的问题。
    就是我直接访问,在地址栏里输入地址,那Session就可以存活,但是我嵌在iframe里,却怎么都不行了,到底是怎么回事啊?
      

  6.   

    重起N次了。
    服务器都重起N次了。
    我刚才搜索了一下。
    发先也有很多人遇到我这个问题。
    http://fenlei48.52csdn.net/878092
      

  7.   

    看来解决无望了。
    我已经搜索了很多相关的东西。
    发现不是什么服务器或者程序的问题而是客户端IE的问题。
    如果把IE的隐私设置为“中”就不会了。
    但这个始终不是最好的办法。哎!!!!