首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > .NET > VB Dotnet >

Session丢失有关问题

2012-05-10 
Session丢失问题Imports SystemImports System.DataImports System.Data.SqlClientImports DAL.zl.DAL_zlI

Session丢失问题
Imports System
Imports System.Data
Imports System.Data.SqlClient
Imports DAL.zl.DAL_zl
Imports BLL.zl.BLL_zl
Imports System.Text

Partial Public Class zl_takemat
  Inherits System.Web.UI.Page
  Dim zltakematbll As New zl_takematBLL()
  Dim systemthreetablebll As New system_threetableBLL()
  Dim baseprojectpbll As New baseprojectpBLL()
  Dim basematbll As New base_MatBLL()
  Protected Sub Page_Load(ByVal sender As Object, ByVal e As System.EventArgs) Handles Me.Load
  If Session("userName") = "" Or Session("userName") Is Nothing Then
  Response.Write("<script>alert('登陆超时,请重新登录!');top.location='../Default.aspx';</script>")
  End If
  If Not IsPostBack Then

  BindDropdownList()
  PageBind()
  End If
  End Sub
#Region "加载绑定数据"
  Public Sub PageBind()
  If Session("userName") = "" Or Session("userName") Is Nothing Then
  Response.Write("<script>alert('登陆超时,请重新登录!');top.location='../Default.aspx';</script>")
  End If
  Dim ds As New DataSet()
  If Session("realName") = "系统管理员" Then
  ds = zltakematbll.GetList(" order by a.takeid desc ")
  Else
  ds = zltakematbll.GetList(" and comp_id=" & Integer.Parse(Session("compId")) & " order by a.takeid desc ")
  End If
  gridview_takemat.DataSource = ds
  gridview_takemat.DataBind()
  End Sub
#End Region

我在多处地方写了判断 还是出错 本来在Page_load 中写一个就好的
<sessionState mode="InProc" stateConnectionString="tcpip=127.0.0.1:42424" sqlConnectionString="data source=127.0.0.1;Trusted_Connection=yes" cookieless="false" timeout="1"/>
我设置1分钟过期测试。。。 什么原因报一下错呢?
值不能为空。
参数名: String 
说明: 执行当前 Web 请求期间,出现未处理的异常。请检查堆栈跟踪信息,以了解有关该错误以及代码中导致错误的出处的详细信息。 

异常详细信息: System.ArgumentNullException: 值不能为空。
参数名: String

源错误: 

执行当前 Web 请求期间生成了未处理的异常。可以使用下面的异常堆栈跟踪信息确定有关异常原因和发生位置的信息。  

堆栈跟踪: 


[ArgumentNullException: 值不能为空。
参数名: String]
  System.Number.StringToNumber(String str, NumberStyles options, NumberBuffer& number, NumberFormatInfo info, Boolean parseDecimal) +7471210
  System.Number.ParseInt32(String s, NumberStyles style, NumberFormatInfo info) +119
  PDMUI.zl_takematEdit.PageBind() +78
  PDMUI.zl_takematEdit.Page_Load(Object sender, EventArgs e) +278
  System.Web.UI.Control.OnLoad(EventArgs e) +99
  System.Web.UI.Control.LoadRecursive() +50
  System.Web.UI.Page.ProcessRequestMain(Boolean includeStagesBeforeAsyncPoint, Boolean includeStagesAfterAsyncPoint) +627

 


[解决办法]
使用basepage判断session
启用asp.net状态服务,保存SESSION
数据库查询用户状态
[解决办法]
Session("compId")这个值是Nothing导致的。
[解决办法]
做一个 pageBase页面,让你所有的页面都继承它,

在pageBase 的pageLoad中判断session是否存在,如果不存在,则跳至 login页

再有,设置 asp.net_status 的服务自动启动
[解决办法]
<sessionState mode="StateServer" 开启ASP.NET 状态服务

热点排行