木野狐(Neil Chen)

Focusd on Silverlight

今天一个 ASP.NET 程序编译时发生错误:

外部组件发生异常。

但是并没有对应的详细信息,和错误的行号等信息,很难排查。

经过一段时间的检查,发现原因出在一个 User Control 后台代码中的引用不知何故写成了:

using System.Windows.Forms;

这样该 UserControl 的页面基类就变成了 System.Windows.Forms.UserControl. 奇怪的是,用 "Build Page" 对该用户控件进行编译时,竟提示成功。而编译整个网站则出错。

上述错误信息中的“外部组件”应该是从引用了该用户控件的页面角度而言的,对他来说这个用户控件就是“外部组件”。
posted on 2008-04-14 00:21 木野狐(Neil Chen) 阅读(564) 评论(1)  编辑 收藏 所属分类: .NET 综合

Feedback

#1楼 [楼主] 2008-05-18 13:10 木野狐(Neil Chen)      
今天又发现同样的错误信息,查了很久,错误原因是,我要让一个 MasterPage 继承某个接口,应该写成:

public partial class MainMasterPage : MasterPage, IMasterPage
{
}
但不小心漏了 MasterPage 这个基类名称,写成了:
public partial class MainMasterPage : IMasterPage
{
}
这样,所有用到这个 MasterPage 的页面都无法编译,并且会报出:
"不能在这未使用 Inherits 的情况下单独使用 CodeFile" 之类奇怪的错误信息。

看来以后这个问题要特别当心,一般这种错误信息其实是说基类的某个地方出了问题。

  回复  引用  查看