2

我最近在我的 Web 应用程序中遇到了以下错误。

页面“ControlName.ascx”不能使用用户控件“OtherControl.ascx”,因为它在 web.config 中注册并与页面位于同一目录中。

虽然我能够通过移动控件并将其注册到页面中来修复错误,但我很好奇为什么会引发错误。

这显然是按照此处所述的设计设计的(黄色块向下 3/4),但我的问题是为什么?通过在 中注册控件Web.Config并将其放置在同一目录中,您可能会遇到什么问题?

4

1 回答 1

2

也许这是一个动态编译的问题。默认情况下,web.config 中“编译”元素的“批处理”属性为 true。像这样的东西:

<compilation defaultLanguage="c#" debug="false" batch="true" targetFramework="4.0" />

使用 batch="true",每当必须在目录中编译控件时,服务器都会编译其目录中的所有控件(一切?)。

我会说 web.config 声明的控件的编译方式与其他控件的编译方式不同(在另一个 dll 中,另一个目录?)因此,将 web.config 声明的控件和其他控件混合在同一目录中,一些引用其他控件会导致重复编译和 dll 冲突。

于 2012-04-18T15:34:00.047 回答