ServerControl随机为null

时间:2010-04-08 11:19:52

标签: asp.net

我有一个带有服务器控件的母版页。随机服务器控件无法从代码隐藏中访问。这不会发生在特定操作上(例如按钮单击等)。目前我不知道这可能是什么。我不认为它的输出缓存,因为它没有被显式激活,并且错误很少发生。但是我将在下一次部署时明确禁用母版页中的缓存。

任何人都知道如何找到更多信息以查找正在发生的事情?或者有人有类似的错误?

控件在标记中定义。伴随代码隐藏是:

PGFMainNavi.HasAccessToFunction = HasAccessToNaviItem;
// HasAccessToNavi is a local function

例外是:

System.NullReferenceException: Object reference not set to an instance 
of an object

感谢。

SA

1 个答案:

答案 0 :(得分:0)

当我缓存控件时,我有类似的错误 - 我总是检查它们是否为null,或者它们是否是正确的类型。

我认为您的控件已缓存在某处。

使用此代码检查未缓存的内容。

if(PGFMainNavi != null)
{
   PGFMainNavi.HasAccessToFunction = HasAccessToNaviItem;
}

或找到您在此控件上设置案例的位置并将其删除。

第二种解决方案

有些时候在线更新之后我收到了这个错误,因为编译器确实无法正确读取所有涉及的文件 - 可能是有些用户在我复制文件的同时读取页面。

为了避免这种情况,我总是在进行更新之前使用 app_offline.htm