设为首页  
联系我们  
加入收藏  
网页制作 冲浪宝典 图形图像 操作系统 软件教学 编程开发 认证考试 安全技术 站长专区 文学驿站 娱乐天地 游戏天地 办公软件
文章搜索
您的位置: 首页 >> 文章首页 >> 编程开发 >> 网络编程 >> ADO.NET应用 >> ASP.NET 崩溃-SiteMap中疯狂的循环
精品推荐
ADO.NET应用点击TOP10
·DataGrid的多行提交
·asp.net中读取和更新xml文件
·ASP.NET数据库编程
·最佳实践 ADO.NET实用经验无保留曝光
·ASP.NET中存取图片到数据库的示例
·ASP.NET 崩溃-SiteMap中疯狂的循环
·小议优化ASP.NET应用性能之ViewState篇
·用ado.net对word,excel进行存取
·ADO.NET入门
·连接SQL SERVER的公共类(VB.NET)
网络编程点击TOP10
·ASP.NET 程序中常用的三十三种代码
·CHK文件恢复工具
·.NET 初 级 读 本
·c#操作word表格
·我的.NET书架 (入门篇)
·『原创』C#中TreeView类操作全攻略:建立树,新增节点,删除节点,修改节点,拖动节点,与Oracle数据库交互操作(一)
·从零开始学ASP.NET(基础篇)
·用C#实现木马程序
·十天学会ASP.net之第一天
·官方水晶报表 .NET 应用程序实例下载 (C#、Visual C++.NET)
精选专题

ASP.NET 崩溃-SiteMap中疯狂的循环

作者: 来源:http://www.xgdown.com/ 时间:2007-1-8 12:34:18

ASP.NET 崩溃-SiteMap中疯狂的循环(1)

原文地址:ASP.NET-Crash-_2D00_-Crazy-looping-in-a-SiteMap.aspx">http://blogs.msdn.com/tess/archive/2006/10/10/ASP.NET-Crash-_2D00_-Crazy-looping-in-a-SiteMap.aspx
发布时间:Tuesday, October 10, 2006 4:10 PM
作  者:Tess      

一天,我收到了一封有关我的博客的邮件,提出如下问题,简述如下:
 
我想快速地创建一个站点地图,因此我重写了BuildSiteMap()方法,在里面我写了一个循环,用以添加一些仿造的sitemap节点。


public override SiteMapNode BuildSiteMap(){
   for (int i = 0; i < 5; i++)
      myRoot.ChildNodes.Add(new SiteMapNode(this, i.ToString(), i.ToString(), i.ToString()));
   return myRoot;
}

运行程序,就发生堆栈溢出,服务器也崩溃了。我用调试器单步调试,发现真的很奇怪: 

1) int i = 0
2) i < 5
3) myRoot...
4) int i = 0
5) i < 5
etc.

i的值看起来从来没有增加,除非我调用到SiteMapNode(Access a property, call a method),看起来这个循环是正确的。
是什么使得这个循环不确定呢?咋看可能是编译器或者是CLR的一个bug.

(当我获此问题时,我真不知道ASP.NET2.0中的站点导航,但我找到了这些文章... http://weblogs.asp.net/scottgu/archive/2005/11/20/431019.aspxhttp://aspnet.4guysfromrolla.com/articles/111605-1.aspx ,叙述得真是很不错.)

 

最初的想法


这个问题最重要的就是它始终重新开始, 这就意味着可以对此做现场调试。但我们暂不走那么远,先回头看看现在有什么...


1. 堆栈溢出


2. 一次又一次重新开始的循环


 我已经在先前的博客帖子里讨论过堆栈溢出,现在重复一下...    引起堆栈溢出的原因是, 分配了太多的函数指针,变量指针和参数,以致在堆栈里申请的内存数量不够用。到目前为止,堆栈溢出最平常的原因是无终止的递归。换句话说,function A调用了function B, function B又调用了function A...


因此,callstack看上去有点像这样....


...
functionB()
functionA()
functionB()
functionA() 


好了,一切都好极了,但那仅仅解释了堆栈溢出。那么疯狂的循环是怎么回事呢?

共4页 9 7 [1] [2] [3] [48 :>

ASP.NET 崩溃-SiteMap中疯狂的循环 相关文章:
ASP.NET 崩溃-SiteMap中疯狂的循环 相关软件:
特别声明:本站除部分特别声明禁止转载的专稿外的其他文章可以自由转载,但请务必注明出处和原始作者。文章版权归文章原始作者所有。对于被本站转载文章的个人和网站,我们表示深深的谢意。如果本站转载的文章有版权问题请联系编辑人员,我们尽快予以更正。
转载请注明来源:http://www.xgdown.com