我做的妖兽代码实施SqlSiteMapProvider的,除了在VB.NET。

有与所造成的问题的代码的一些事情,我不明白它是如何工作的这是写文章的方式。我从下面提供的文章提供的代码直。 我在这里粘贴的代码以易于观看的

首先问题 - depedency之前实例化(线134-137)树创建(151-160) - 所以只要你的depedency添加到http.cache(165-167),该OnSiteMapChanged事件( 242)则会立即触发 - 再次使得整个proccess运行 - 而且直到最后的东西使它停止这种循环多次。 (ⅰ通过它台阶和计数的代码循环至少20次之前我放弃了在试图猜测当它击中最后)

OK,所以要解决这个问题我刚搬到代码的创建依赖于AFTER树而建,正确插入到http.cache之前(加入http.cache当这样HasChanged属性是假的,而你不知道吨陷在这个伪ifinite环)。

我还有虽然问题 - 每次页面加载时,BuildSiteMap()命中和行121个检查是否_root不为空 - 现在看来,这是从来没有空则先建后......这是一件好事,因为我不想每次都打DB。现在,我将记录插入表...的OnSiteMapChanged事件永远不会触发。当我浏览的应用页面,站点地图并不反映新插入的记录 - 单步调试代码,我看到,在121线检查仍是造成功能短路...如果我重新站点地图只会刷新 - 启动Visual Studio中,这将导致私人_root字段设置为null再次成为,并重新建立网站地图,反映了新的变化。(刷新浏览器或启动新的浏览器实例不工作)...

<强> 编辑:问题梗从SILLY 'SET NOCOUNT ON' 线我的存储PROC的顶部。显然,这打破了查询通知。看来,这个声明被看作是一个结果集和第二,实际的查询语句无效导致的通知结果集。这是很难找到和MSDN文档芳踪,直到我添加的注释。希望这样可以节省别人我经历的守财奴!

有帮助吗?

解决方案

问题梗从SILLY“SET NOCOUNT ON”线我的存储PROC的顶部。显然,这打破了查询通知。看来,这个声明被看作是一个结果集和第二,实际的查询语句无效导致的通知结果集。这是很难找到和MSDN文档芳踪,直到我添加的注释。希望这样可以节省别人我经历的守财奴!

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top