Базовый класс включает поле 'X', но его тип (System.Web.UI.ScriptManager) несовместим с типом элемента управления (System.Web.UI.ScriptManager)
Полная ошибка
Базовый класс включает поле ScriptManager1, но его тип (System.Web.UI.ScriptManager) несовместим с типом элемента управления (System.Web.UI.ScriptManager).
Кто-нибудь еще сталкивался с этой ошибкой?
Ответов (12)12
Мне удалось исправить это, добавив это в web.config:
<runtime>
<assemblyBinding xmlns="urn:schemas-microsoft-com:asm.v1">
<dependentAssembly>
<assemblyIdentity name="System.Web.Extensions" publicKeyToken="31bf3856ad364e35"/>
<bindingRedirect oldVersion="1.0.0.0-1.1.0.0" newVersion="3.5.0.0"/>
</dependentAssembly>
<dependentAssembly>
<assemblyIdentity name="System.Web.Extensions.Design" publicKeyToken="31bf3856ad364e35"/>
<bindingRedirect oldVersion="1.0.0.0-1.1.0.0" newVersion="3.5.0.0"/>
</dependentAssembly>
</assemblyBinding>
</runtime>
Я считаю, что это заставляет среду выполнения .net использовать новые версии этих сборок.
в моем случае просто переключил фреймворк сборки с 2.0 на 3.5.
Это можно сделать, щелкнув правой кнопкой мыши имя проекта (в верхней части проводника решений) и выбрав «Страницы свойств». оттуда выберите вариант сборки и измените структуру.
Он должен обновить web.config и все необходимые ссылки.
HTH
Дэйв
Были аналогичные проблемы при обновлении с 3.5 до 4.0. В моем случае есть корневой веб-сайт и виртуальные каталоги приложений IIS под ним.
Код отлично работал в моих областях разработки и подготовки.
Как только он попал на рабочий сервер, он рухнул. Хотя код был таким же.
Мое решение заключалось в том, чтобы удалить виртуальный каталог и воссоздать его. Убедитесь, что пул приложений правильный, а версия asp.net верна. (мои серверы - Windows Server 2003 с IIS6).
Еще одно важное замечание - вы не можете запускать несколько версий asp.net в одном пуле приложений.
«Базовый класс включает поле ScriptManager1, но его тип (System.Web.UI.ScriptManager) несовместим с типом элемента управления (System.Web.UI.ScriptManager)».
Кто-нибудь еще сталкивался с этой ошибкой?
У меня была такая ошибка несколько раз, но не только со сценарием. В основном это происходит, когда у вас есть элемент управления одного типа на странице. Допустим, вы какое-то время бездельничали. Но затем вы удалили элемент управления и поставили на его место другой с тем же идентификатором, вот тогда это может произойти. Я считаю, что он связан с устаревшим aspx.designer.cs или создан им.
Решить проблему. Мне пришлось либо изменить имя идентификатора элемента управления, либо перестроить решение. Думаю, есть и другой способ. Я думаю, что если у вас есть файл aspx.designer.cs с именем файла aspx, вы также можете изменить его там.
Я столкнулся с этой проблемой при обновлении веб-приложения с .NET 2.0 до 3.5.
Убедитесь, что ваш web.config правильно настроен для .NET 3.5. Я добавил / изменил следующее:
<configSections>
<sectionGroup name="system.web.extensions" type="System.Web.Configuration.SystemWebExtensionsSectionGroup, System.Web.Extensions, Version=3.5.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35">
<sectionGroup name="scripting" type="System.Web.Configuration.ScriptingSectionGroup, System.Web.Extensions, Version=3.5.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35">
<section name="scriptResourceHandler" type="System.Web.Configuration.ScriptingScriptResourceHandlerSection, System.Web.Extensions, Version=3.5.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35" requirePermission="false" allowDefinition="MachineToApplication"/>
<sectionGroup name="webServices" type="System.Web.Configuration.ScriptingWebServicesSectionGroup, System.Web.Extensions, Version=3.5.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35">
<section name="jsonSerialization" type="System.Web.Configuration.ScriptingJsonSerializationSection, System.Web.Extensions, Version=3.5.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35" requirePermission="false" allowDefinition="Everywhere"/>
<section name="profileService" type="System.Web.Configuration.ScriptingProfileServiceSection, System.Web.Extensions, Version=3.5.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35" requirePermission="false" allowDefinition="MachineToApplication"/>
<section name="authenticationService" type="System.Web.Configuration.ScriptingAuthenticationServiceSection, System.Web.Extensions, Version=3.5.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35" requirePermission="false" allowDefinition="MachineToApplication"/>
<section name="roleService" type="System.Web.Configuration.ScriptingRoleServiceSection, System.Web.Extensions, Version=3.5.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35" requirePermission="false" allowDefinition="MachineToApplication"/>
</sectionGroup>
</sectionGroup>
</sectionGroup>
</configSections>
<assemblies>
<!--<add assembly="System.Web.Extensions, Version=1.0.61025.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35"/>-->
<add assembly="System.Core, Version=3.5.0.0, Culture=neutral, PublicKeyToken=B77A5C561934E089"/>
<add assembly="System.Web.Extensions, Version=3.5.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35"/>
<add assembly="System.Xml.Linq, Version=3.5.0.0, Culture=neutral, PublicKeyToken=B77A5C561934E089"/>
<add assembly="System.Data.DataSetExtensions, Version=3.5.0.0, Culture=neutral, PublicKeyToken=B77A5C561934E089"/>
</assemblies>
<httpHandlers>
<remove verb="*" path="*.asmx"/>
<add verb="*" path="*.asmx" type="System.Web.Script.Services.ScriptHandlerFactory, System.Web.Extensions, Version=3.5.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35" validate="false"/>
<add verb="*" path="*_AppService.axd" validate="false" type="System.Web.Script.Services.ScriptHandlerFactory, System.Web.Extensions, Version=3.5.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35"/>
<add verb="GET,HEAD" path="ScriptResource.axd" type="System.Web.Handlers.ScriptResourceHandler, System.Web.Extensions, Version=3.5.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35" validate="false"/>
<httpHandlers>
<pages enableSessionState="true" validateRequest="true">
<controls>
<add tagPrefix="asp" namespace="System.Web.UI" assembly="System.Web.Extensions, Version=3.5.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35"/>
<add tagPrefix="asp" namespace="System.Web.UI.WebControls" assembly="System.Web.Extensions, Version=3.5.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35"/>
</controls>
</pages>
<httpModules>
<add name="ScriptModule" type="System.Web.Handlers.ScriptModule, System.Web.Extensions, Version=3.5.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35"/>
</httpModules>
У нас была очень похожая проблема. Платформа разработки работала нормально, но как только сайт был развернут на сайте тестирования, он сломался с тем же сообщением, что и исходный плакат выше. У нас были подкаталоги в нашем каталоге элементов управления для группирования пользовательских элементов управления вместе. Проблема заключалась в том, что элемент управления в подкаталоге пытался использовать элемент управления в каталоге над ним. Нашим первым исправлением было клонирование элемента управления верхнего уровня в подкаталог. Затем мы пришли к идее создания параллельного дочернего подкаталога и размещения в нем элемента управления. Это устранило проблему без необходимости прибегать к (а) выравниванию структуры каталогов элементов управления или (б) клонированию одного и того же элемента управления в различных подкаталогах.
Поэтому наше решение - никогда не ссылаться на элемент управления в родительском каталоге из пользовательского элемента управления в подкаталоге.
Надеюсь, это поможет.
Добавление <runtime>
раздела выше устранило проблему на наших машинах разработки и тестовом сервере, но не на наших живых серверах.
Оказывается, если ваш web.config
файл содержит атрибут xmlns, xmlns="http://schemas.microsoft.com/.NetConfiguration/v2.0"
вы получите конфликт GAC:
BAD.web.config
<?xml version="1.0"?>
<configuration xmlns="http://schemas.microsoft.com/.NetConfiguration/v2.0">
etc
но эта версия с машины devt в порядке:
GOOD.web.config
<?xml version="1.0"?>
<configuration>
etc
Поэтому убедитесь, что ссылка 2.0 удалена из верхней части web.config
файла.
Вы также можете решить эту проблему в файле .vbproj (в моем случае). Проверьте эти записи:
<Reference Include="System.Web.Extensions, Version=3.5.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35">
<RequiredTargetFramework>3.5</RequiredTargetFramework>
</Reference>
<Reference Include="System.Web.Extensions.Design, Version=3.5.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35">
<RequiredTargetFramework>3.5</RequiredTargetFramework>
</Reference>
Похоже, это также заставляет использовать библиотеки DLL версии 3.5.