Подтвердить что ты не робот

Базовый класс включает поле "X", но его тип (System.Web.UI.ScriptManager) несовместим с типом элемента управления (System.Web.UI.ScriptManager)

Полная ошибка

Базовый класс включает поле "ScriptManager1", но его тип (System.Web.UI.ScriptManager) несовместим с типом элемента управления (System.Web.UI.ScriptManager).

Кто-нибудь еще сталкивается с этой ошибкой?

4b9b3361

Ответ 1

Мне удалось исправить это, добавив это в 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

Я столкнулся с этой проблемой при обновлении веб-приложения с .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>

                                                                                                                                               

Ответ 3

Добавление раздела <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.

Ответ 4

Вы также можете решить эту проблему в файле .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.

Ответ 5

У нас была очень похожая проблема. Платформа разработки работала нормально, но как только сайт был развернут на сайт тестирования, он сломался с тем же сообщением, что и исходный плакат выше. У нас были подкаталоги в нашем каталоге управления, чтобы объединить элементы управления пользователями. Проблема оказалась элементом управления в подкаталоге, который пытается использовать элемент управления в директории над ним. Наше первое исправление заключалось в том, чтобы клонировать элемент верхнего уровня в подкаталог. Затем мы обратились к идее создания параллельного подкаталога sibling и парковки управления там. Это устранило проблему, не прибегая к (а) сглаживанию нашей структуры каталогов элементов управления или (б) клонировать один и тот же элемент управления в разных подкаталогах.

Итак, наше решение - никогда не ссылаться на элемент управления в родительском каталоге из пользовательского элемента управления в подкаталоге.

Надеюсь, это поможет.

Ответ 6

Это также можно решить, изменив ссылку на проект на System.Web.Extensions 1.0.61025 или другую версию. Убедитесь, что ссылка на проект, веб-конфигурация и набор инструментов ajax соответствуют одной и той же версии.

Ответ 7

У нас была та же проблема, когда предварительно скомпилировать наше приложение из командной строки, используя флаг "Приложение обновляется":

aspnet_compiler.exe -u

удаление флага -u решило эту проблему. Не спрашивайте меня, почему!

Ответ 8

Очень похожая проблема. "Базовый класс включает в себя поле" WebUserControl1 ", но его тип (common_WebUserControl)..." изменил файлы разметки с CodeFile= до CodeBehind=

Ответ 9

в моем случае, просто переключил структуру сборки с 2.0 на 3.5.

Это делается щелчком правой кнопкой мыши по имени проекта (вверху проводника решений) и выберите "Страницы свойств". оттуда, выберите вариант сборки и измените структуру.

Он должен обновить web.config и все необходимые ссылки.

НТН

Dave

Ответ 10

Были проблемы с аналогичными проблемами, начиная с 3.5 до 4.0. В моем случае есть корневой сайт и виртуальные каталоги приложений IIS под этим.

Код работал отлично в моих областях разработки и создания.

Как только он вышел на производственный сервер, он разбился. Хотя код был тем же.

Мое решение состояло в том, чтобы удалить виртуальный каталог и воссоздать его. Убедитесь, что пул приложений верен, а версия asp.net верна. (мои серверы - сервер Windows 2003 с IIS6).

Еще одно важное замечание - вы не можете запускать несколько версий asp.net в одном пуле приложений.

Ответ 11

"Базовый класс включает поле ScriptManager1, но его тип (System.Web.UI.ScriptManager) несовместим с типом управления (System.Web.UI.ScriptManager)".

Кто-нибудь еще сталкивается с этой ошибкой?

У меня была такая ошибка несколько раз, хотя не специально с scriptmanager. В основном это происходит, когда вы контролируете один тип на странице. И позвольте сказать, что вы когда-нибудь простаивали. Но затем вы удалили элемент управления и поместили еще один на своем месте с тем же идентификатором, то есть когда он может произойти. Я считаю, что он связан или создан устаревшим aspx.designer.cs.

Чтобы устранить проблему. Я либо должен был изменить имя идентификатора элемента управления, либо перестроить решение. Я думаю, что есть и другой путь. Я думаю, если у вас есть файл aspx.designer.cs имени файла aspx, вы также можете его изменить.