Полная ошибка
Базовый класс включает поле "ScriptManager1", но его тип (System.Web.UI.ScriptManager) несовместим с типом элемента управления (System.Web.UI.ScriptManager).
Кто-нибудь еще сталкивается с этой ошибкой?
Полная ошибка
Базовый класс включает поле "ScriptManager1", но его тип (System.Web.UI.ScriptManager) несовместим с типом элемента управления (System.Web.UI.ScriptManager).
Кто-нибудь еще сталкивается с этой ошибкой?
Мне удалось исправить это, добавив это в 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 запускать новые версии этих сборок.
Я столкнулся с этой проблемой при обновлении веб-приложения с .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.
У нас была очень похожая проблема. Платформа разработки работала нормально, но как только сайт был развернут на сайт тестирования, он сломался с тем же сообщением, что и исходный плакат выше. У нас были подкаталоги в нашем каталоге управления, чтобы объединить элементы управления пользователями. Проблема оказалась элементом управления в подкаталоге, который пытается использовать элемент управления в директории над ним. Наше первое исправление заключалось в том, чтобы клонировать элемент верхнего уровня в подкаталог. Затем мы обратились к идее создания параллельного подкаталога sibling и парковки управления там. Это устранило проблему, не прибегая к (а) сглаживанию нашей структуры каталогов элементов управления или (б) клонировать один и тот же элемент управления в разных подкаталогах.
Итак, наше решение - никогда не ссылаться на элемент управления в родительском каталоге из пользовательского элемента управления в подкаталоге.
Надеюсь, это поможет.
Это также можно решить, изменив ссылку на проект на System.Web.Extensions 1.0.61025 или другую версию. Убедитесь, что ссылка на проект, веб-конфигурация и набор инструментов ajax соответствуют одной и той же версии.
У нас была та же проблема, когда предварительно скомпилировать наше приложение из командной строки, используя флаг "Приложение обновляется":
aspnet_compiler.exe -u
удаление флага -u решило эту проблему. Не спрашивайте меня, почему!
Очень похожая проблема. "Базовый класс включает в себя поле" WebUserControl1 ", но его тип (common_WebUserControl)..." изменил файлы разметки с CodeFile=
до CodeBehind=
в моем случае, просто переключил структуру сборки с 2.0 на 3.5.
Это делается щелчком правой кнопкой мыши по имени проекта (вверху проводника решений) и выберите "Страницы свойств". оттуда, выберите вариант сборки и измените структуру.
Он должен обновить web.config и все необходимые ссылки.
НТН
Dave
Были проблемы с аналогичными проблемами, начиная с 3.5 до 4.0. В моем случае есть корневой сайт и виртуальные каталоги приложений IIS под этим.
Код работал отлично в моих областях разработки и создания.
Как только он вышел на производственный сервер, он разбился. Хотя код был тем же.
Мое решение состояло в том, чтобы удалить виртуальный каталог и воссоздать его. Убедитесь, что пул приложений верен, а версия asp.net верна. (мои серверы - сервер Windows 2003 с IIS6).
Еще одно важное замечание - вы не можете запускать несколько версий asp.net в одном пуле приложений.
"Базовый класс включает поле ScriptManager1, но его тип (System.Web.UI.ScriptManager) несовместим с типом управления (System.Web.UI.ScriptManager)".
Кто-нибудь еще сталкивается с этой ошибкой?
У меня была такая ошибка несколько раз, хотя не специально с scriptmanager. В основном это происходит, когда вы контролируете один тип на странице. И позвольте сказать, что вы когда-нибудь простаивали. Но затем вы удалили элемент управления и поместили еще один на своем месте с тем же идентификатором, то есть когда он может произойти. Я считаю, что он связан или создан устаревшим aspx.designer.cs.
Чтобы устранить проблему. Я либо должен был изменить имя идентификатора элемента управления, либо перестроить решение. Я думаю, что есть и другой путь. Я думаю, если у вас есть файл aspx.designer.cs имени файла aspx, вы также можете его изменить.