我最近在我的网络应用程序中遇到以下错误。
“ControlName.ascx”页面无法使用该用户 控制'OtherControl.ascx',因为它已注册 web.config并与页面位于同一目录中。
虽然我能够通过移动控件并在页面中注册它来修复错误,但我很好奇为什么会引发错误。
这显然是设计为here所描述的设计(黄色块中为3/4)但我的问题是为什么?通过在Web.Config
中注册控件并将其放在同一目录中,您可能会遇到什么问题?
答案 0 :(得分:2)
也许这是动态编译的问题。 默认情况下,web.config中“compilation”元素的“batch”属性为true。像这样:
<compilation defaultLanguage="c#" debug="false" batch="true" targetFramework="4.0" />
对于batch =“true”,只要必须在目录中编译控件,服务器就会在其目录中编译所有控件(所有内容?)。
我会说web.config声明的控件的编译方式与其他控件的编译方式不同(在另一个dll中,另一个目录?)因此,混合web.config声明控件和同一目录中的其他控件,一些引用其他控件会导致重复的编译和DLL冲突。