求助:asp.net 应用程序中的服务器错误

xingluoqibu 2005-03-27 09:47:22
站点运行一定时间后,出现如下错误

“/”应用程序中的服务器错误。
--------------------------------------------------------------------------------

未将对象引用设置到对象的实例。
说明: 执行当前 Web 请求期间,出现未处理的异常。请检查堆栈跟踪信息,以了解有关该错误以及代码中导致错误的出处的详细信息。

异常详细信息: System.NullReferenceException: 未将对象引用设置到对象的实例。

源错误:

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

堆栈跟踪:


[NullReferenceException: 未将对象引用设置到对象的实例。]
Onest.Wallpager.Index.Page_Load(Object sender, EventArgs e)
System.Web.UI.Control.OnLoad(EventArgs e) +67
System.Web.UI.Control.LoadRecursive() +35
System.Web.UI.Page.ProcessRequestMain() +731




--------------------------------------------------------------------------------
版本信息: Microsoft .NET Framework 版本:1.1.4322.573; ASP.NET 版本:1.1.4322.573
...全文
101 点赞 收藏 13
写回复
13 条回复
切换为时间正序
当前发帖距今超过3年,不再开放新的回复
发表回复
foxtoo2000 2005-03-28
奇怪了...........
不应该啊,你是什么系统阿!
回复
lovelxj 2005-03-28
男儿漆下有黄金啊。。。。。

调试跟踪 来个压力测试
回复
xingluoqibu 2005-03-28
跪求高手帮忙,高分结贴
顶一下
回复
xingluoqibu 2005-03-28
我是用的SQL2000呀
回复
zhang5wen 2005-03-28
我的也是经常产生这种错误,运行一段时间后就会出现错误,找不到解决方法。我认为是连接数据库的问题,如果是ACCESS数据库,当页面连续请求连接时就会出现错误,原因是可能ACCESS数据库只能以独占方式打开,当有两个页面同时请求时,就产生冲突,建议改用SQLServer2000数据库
回复
xingluoqibu 2005-03-28
我个人电脑是win2003,服务器是win2000AS
回复
xingluoqibu 2005-03-28
压力测试没有出现问题

以下是page_load代码

private void Page_Load(object sender, System.EventArgs e)
{
// 在此处放置用户代码以初始化页面
if(Array.IndexOf(Request.Params.AllKeys,"account",0,Request.Params.Keys.Count) != -1)
{
strAccount = Request.Params["account"].ToString();
}
if(Array.IndexOf(Request.Params.AllKeys,"navigation",0,Request.Params.Keys.Count) != -1)
{
strNavigation = Request.Params["navigation"].ToString().ToLower();
}
DataOperator.ConnectDataBase();

DataSet ds1 = new DataSet();
ds1 = DataOperator.GetSqlSet("select top 4 * from PicDataInfo where pUse='待机彩图' and pChannelTj=1 and pIsPass=1 order by PostTime desc");
DataTable dt = new DataTable();
dt= ds1.Tables["table1"];

string htmlHeader = ""; //<table>标签
string htmlBody = ""; //中间有若干个<tr>标签,即行
string htmlFoot = ""; //</table>标签

htmlHeader = "<table width='100%' border='0' cellspacing='0' cellpadding='3'>\n";

for(int i = 0;i < dt.Rows.Count ;i ++)
{
if(i % 4 == 0) htmlBody += "<tr>";
htmlBody = htmlBody + String.Format("<td width='25%' align='center'><a href='MmsSend.aspx?account={3}&navigation={4}&id={2}' target='_blank'><img border='0' vspace='5' width='128' height='128' src='{0}'><br><a href='MmsSend.aspx?account={3}&navigation={4}&id={2}' target='_blank'>{1}</a></td>\n","/Resource/pics/" + dt.Rows[i]["pUrl"].ToString(),dt.Rows[i]["pName"].ToString(),dt.Rows[i]["id"].ToString(),strAccount,strNavigation);
}
htmlFoot = "</table>\n";

myHtmlTj.InnerHtml = htmlHeader + htmlBody + htmlFoot;

ds1 = DataOperator.GetSqlSet("select * from newskind where parentid=1");
dt = ds1.Tables["table1"];
dt.Columns.Add("utf8kindname");
for( int i = 0; i < dt.Rows.Count; i++)
{
dt.Rows[i]["utf8kindname"] = DataOperator.StrToUtf8(dt.Rows[i]["kindname"].ToString());
}
DataList1.DataSource = dt;
// DataList1.DataSource = DataOperator.GetSqlSet("select * from newskind where parentid=1");
DataList1.DataBind();

DataList2.DataSource = DataOperator.GetSqlSet("select top 10 * from PicDataInfo where pUse='待机彩图' and pIsPass=1 order by pHits_real desc");
DataList2.DataBind();

int cp;
if(this.Request.Params["currentPage"] == null)
{
cp = 1;
}
else
{
cp = Convert.ToInt32(this.Request.Params["currentPage"]);
}
string strOrderBy = "PostTime desc";
if(Request.Params["OrderBy"] != null)
{
string strOrderByTemp = Request.Params["OrderBy"].ToString();
if(strOrderByTemp == "Hit")
{
strOrderBy = "pHits_real desc";
}
}


string strTableName,strSqlWhere,strSqlOrder,strTableKey;
strTableName = "PicDataInfo"; //不可为空
strSqlWhere = " and pUse='待机彩图' and pIsPass=1"; //and 开始,可为空
strSqlOrder = strOrderBy; //不可为空
strTableKey = "id"; //不可为空

if(Request.Params["Keyword"] != null)
{
string strKeyword = Request.Params["Keyword"].ToString();
strSqlWhere += " and pName like '%" + strKeyword +"%'";
}
if(Request.Params["pType"] != null)
{
strSqlWhere += " and pType = '" + Request.Params["pType"].ToString() +"'";
}
int TableCount = DataOperator.GetSqlCount(strTableName,strSqlWhere);

//以下设置控件参数
this.PublicPages1.AllCount = TableCount;//总记录条数
this.PublicPages1.CurrentPage = cp; //当前页,从URL中读取
this.PublicPages1.ShowPages = 10; //导航数字个数
this.PublicPages1.Count = 16; //每页显示的记录条数

StringBuilder sql = new StringBuilder();
//以下三个字符串最终组合成一个完整的表格<table>
htmlHeader = ""; //<table>标签
htmlBody = ""; //中间有若干个<tr>标签,即行
htmlFoot = ""; //</table>标签

DataSet ds2 = new DataSet();
ds2 = DataOperator.GetSqlPage(strTableName,strSqlWhere,strSqlOrder,strTableKey,this.PublicPages1.Count,(this.PublicPages1.CurrentPage - 1) * this.PublicPages1.Count);
// DataTable dt = new DataTable();
dt= ds2.Tables["table3"];
htmlHeader = "<table border='0' cellpadding='5' cellspacing='0' width='100%'>\n";

for(int i = 0;i < dt.Rows.Count ;i ++)
{
if(i % 4 == 0) htmlBody += "<tr>";
htmlBody = htmlBody + String.Format("<td width='25%' align='center' class='mmstd'><a href='MmsSend.aspx?account={3}&navigation={4}&id={2}' target='_blank'><img border='0' vspace='5' width='128' height='128' src='{0}'><br><a href='MmsSend.aspx?account={3}&navigation={4}&id={2}' target='_blank'>{1}</a></td>\n","/Resource/pics/" + dt.Rows[i]["pUrl"].ToString(),dt.Rows[i]["pName"].ToString(),dt.Rows[i]["id"].ToString(),strAccount,strNavigation);
}

htmlFoot = "</table>\n";

this.myHtml.InnerHtml = htmlHeader + htmlBody + htmlFoot;



}
回复
myxs 2005-03-28
设置断点
回复
cuike519 2005-03-28
你把Page_Load里面的代码帖出来看看!根据错误的堆栈来看!错误应该就在Page_Load方法里面而不是Page_Load里面的其他的方法。是不是访问了一些可能过期的对象,这种对象在处理之前一定要判断是否为null,再处理。
回复
xingluoqibu 2005-03-27
能通过编译,是运行一段时间才出错

以下是数据库连接及操作函数

public static void ConnectDataBase()
{
if (con == null)
{
con = new SqlConnection(ConfigurationSettings.AppSettings["ConnectionString"].ToString());
}

}

public static DataSet GetSqlSet(string StrSql)
{
SqlCommand selectCmd = new SqlCommand(StrSql,con);
SqlDataAdapter adapter = new SqlDataAdapter();
adapter.SelectCommand = selectCmd;

DataSet ds = new DataSet();

try
{
con.Open();
adapter.Fill(ds,"table1");
con.Close();
}
catch(Exception)
{

}

return ds;
}
回复
robincrystal 2005-03-27
应该是控件中的名称引用错误。。这个时候不会产生定界付错误,但是不能通过编译运行
回复
xingluoqibu 2005-03-27
可是我把IIS重启一下就好了,运行一段时间就这样了,而且所有连接数据库的页面都出错
.net对数据库连接数有没有限制,还是重复访问数据库就出错
回复
yezie 2005-03-27
Page_Load是不是有个字段未实例化就使用了
回复
相关推荐
发帖
.NET技术社区
创建于2007-09-28

5.8w+

社区成员

.NET技术交流专区
申请成为版主
帖子事件
创建了帖子
2005-03-27 09:47
社区公告
暂无公告