У нас есть файл "Validators.skin" в нашем каталоге App_Themes уже более года, и у него есть одно определение:
<asp:RequiredFieldValidator runat="server" Display="Dynamic" ErrorMessage="Required" />
, которое работает на наших машинах разработки (XP и Win7 IIS7) без проблем.
Мы только что развернули на тестовом сервере Win2008, IIS7.5 и получаем следующую ошибку:
The 'Display' property of a control type System.Web.UI.WebControls.RequiredFieldValidator cannot be applied through a control skin.
Есть идеи, что происходит? Что случилось?Все, что я читал о скинах и asp: RequiredFieldValidator говорит о том, что вы не можете установить свойство Display.Но почему он не жалуется на машины разработчика?
Подробнее
MSDN показывает, что свойство Display стало Themeable в .NET 4.0, но до этого оно не было Themeable (изменить версиичтобы увидеть):
http://msdn.microsoft.com/en-us/library/system.web.ui.webcontrols.basevalidator.display(v=VS.100).aspx
Так что это объясняет, почему сервер не работает ... похоже, правильно получает ошибку.
Но почему на некоторых наших устройствах разработки, на которых НЕ установлен .NET 4.0, это работает?У нас даже есть другой тестовый сервер, на котором этот код работает годами, и он всегда работал.
Подробнее
System.Web.dll на Win2k8 - это версия файла 2.0.50727.1434
System.Web.dll на Win2k3 - это версия файла 2.0.50727.3053
И если я использую Reflector:
Версия .1434 имеет Themeable (false) для свойства BaseValidator.Display.
.3053 версия имеет Themeable (true) для свойства BaseValidator.Display.
Кто-нибудь знает, откуда взялась версия System.Web.dll 2.0.50727.3053?Можно ли его установить на Win2k8?