2012-04-18 24 views
2

我最近在我的web應用程序中出現以下錯誤。Y.ascx頁面無法使用用戶控件X.ascx

頁「ControlName.ascx」不能使用用戶 控制「OtherControl.ascx」,因爲它是註冊在web.config中 ,住在同一個目錄中的頁面。

雖然我能夠通過移動控件並在頁面中註冊來解決錯誤,但我很好奇爲什麼會引發錯誤。

這顯然是按照設計描述here(3/4倒在黃色塊)但我的問題是爲什麼?通過在Web.Config中註冊控件並將其放在同一個目錄中,您可能會遇到什麼問題?

回答

2

也許這是一個動態編譯的問題。 默認情況下,web.config中「編譯」元素的「批處理」屬性爲true。事情是這樣的:

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

隨着一批=「真」,只要控制在一個目錄下進行編譯,該服務器在其目錄編譯所有控件(一切?)。

我會說web.config聲明的控件與其他控件的編譯方式不同(在另一個dll中,另一個目錄?)所以,混合web.config聲明控件和其他控件在同一個目錄中,一些引用其他人會導致重複的編譯和dll衝突。

+0

有趣我會看看批處理屬性。 – 2012-04-19 13:39:15

相關問題