为什么IIS 7.5会多次构造页面



我承认我已经发布了一个关于我观察到的现象的问题,但经过更多的研究,我从一个稍微不同的角度来看待它,并对它进行了不同的标记:

我有一个页面--WorkflowDetail.aspx--由一个类文件--WorkflowDetail.aspx.vb支持。该类继承自Spring.Web.UI.page的BaseClass1(BaseClass1没有关联的aspx,只有一些常见的属性和方法)。

我在WorkFlowDetailNew()方法中设置了一个断点。我发现当我在浏览器中打开页面时,构造函数会运行几次。我很想知道谁在运行它以及为什么运行,但堆栈只显示">[External Code]"。

如果我没有尝试让Spring在页面中注入DAO属性,这只不过是无聊的好奇心,或者最多只是一个小烦恼。发生的情况是Spring执行注入(当调试器在New()中停止时,可以看到堆栈上的所有Spring方法),但随后">[External Code]"创建了页面的新副本,因此当它访问DAO属性时,它为null,因为这是一个不同于注入属性的页面实例。

这一切都发生在IIS 7.5集成VS2010中构建的Web应用程序上,目标是.NET 4.0。在SpringNorthwind示例的页面中设置类似的断点,该示例是一个网站,目标是.NET 3.5,当Spring实例化页面时,它就会被击中,仅此而已。

有人能告诉我是什么导致了这些额外的实例化吗?或者我如何才能发现?

问题出在我们设置Telerik RadGrid控件的DataSources的方式上。我们在ASP代码中分配了它们,这导致Telerik代码为每次分配重新实例化页面(请原谅我没有详细说明电传为什么这样做)。

我们通过使用控件">OnNeedDataSource"事件来绕过它,以便稍后设置DataSources。

相关内容

  • 没有找到相关文章

最新更新