La classe de Base inclut le champ 'X', mais son type (System.Web.INTERFACE.ScriptManager) n'est pas compatible avec le type de contrôle (système.Web.INTERFACE.ScriptManager)

la pleine erreur est

la classe de base inclut le champ 'ScriptManager1', mais son type (System.Web.INTERFACE.ScriptManager) n'est pas compatible avec le type de contrôle (système.Web.INTERFACE.ScriptManager).

Quelqu'un d'autre est tombé sur cette erreur?

21
demandé sur Nathan Smith 2009-02-24 20:06:55

11 réponses

j'ai réussi à le corriger en ajoutant ceci à 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>

je crois que cela force le runtime .net à utiliser les nouvelles versions de ces assemblages.

37
répondu MGOwen 2009-08-05 00:34:20

j'ai rencontré ce problème lors de la mise à niveau d'une application web de .NET 2.0 à 3.5.

consultez votre site web.config est correctement paramétré pour .NET 3.5. J'ai ajouté/modifié le code suivant:

  <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>

7
répondu Daniel Ballinger 2009-04-28 04:31:18

ajouter le <runtime> la section ci-dessus a corrigé le problème sur nos machines de développement et nos serveurs de test, mais pas sur nos serveurs en direct.

Il s'avère que si votre web.config le fichier contient un attribut xmlns xmlns="http://schemas.microsoft.com/.NetConfiguration/v2.0" ensuite, vous aurez un GAC conflit:

BAD.web.config
<?xml version="1.0"?>
<configuration xmlns="http://schemas.microsoft.com/.NetConfiguration/v2.0">
etc

mais cette version de l'devt la machine est très bien:

GOOD.web.config
<?xml version="1.0"?>
<configuration>
etc

alors assurez-vous que la référence 2.0 est retirée du haut de votre web.config fichier.

2
répondu JimBGood 2017-10-31 19:11:00

Vous pouvez également résoudre ce problème dans le .fichier vbproj (dans mon cas). Vérifier ces entrées:

<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>

cela semble aussi forcer l'utilisation de la version 3.5 DLLs.

1
répondu Brice D 2010-09-15 00:47:40

Nous avons eu un problème similaire. La plate-forme de développement fonctionnait bien, mais une fois le site déployé sur le site d'essai, il a rompu avec le même message que l'affiche originale ci-dessus. Nous avions des sous-répertoires dans notre répertoire des contrôles pour regrouper les contrôles des utilisateurs. Le problème est apparu à un contrôle dans le sous-répertoire d'essayer d'utiliser un contrôle dans le répertoire ci-dessus. Notre première Solution a été de cloner le contrôle de niveau supérieur dans le sous-répertoire. Nous avons ensuite eu l'idée de créer un parallèle frère sous-répertoire et le stationnement de la lutte. Cela a résolu le problème sans avoir à recourir à (a) aplatir notre structure de répertoire de contrôles ou (B) cloner le même contrôle dans divers sous-répertoires.

Donc, notre solution est de ne jamais faire référence à un contrôle dans un répertoire parent d'un contrôle utilisateur dans un sous-répertoire.

j'espère que cette aide.

0
répondu 2009-10-09 03:56:09

ceci peut aussi être résolu en changeant la référence du projet au système.Web.Extensions 1.0.61025 ou une autre version, assurez-vous que la référence du projet, la configuration web et la boîte à outils ajax correspondent toutes à la même version.

0
répondu Pankil 2010-02-03 20:42:06

nous avons eu ce même problème en précompilant notre application depuis la ligne de commande en utilisant le drapeau "Application is updable":

aspnet_compiler.exe -u

la suppression du drapeau-u a résolu ce problème. Ne me demandez pas pourquoi!

0
répondu JordanC 2010-08-06 04:39:43

question très similaire. "La classe de base inclut le champ 'WebUserControl1', mais son type (common_WebUserControl) est ..."a changé de balisage des fichiers à partir de CodeFile=CodeBehind=

0
répondu Maslow 2011-06-29 18:41:39

dans mon cas, je viens de passer le cadre de construction de 2.0 à 3.5.

pour ce faire, cliquez avec le bouton droit de la souris sur le nom du projet (en haut de l'Explorateur de solutions) et sélectionnez "Propriétés". à partir de là, sélectionnez build option et changez le cadre.

il devrait mettre à jour web.config et toutes les références nécessaires.

HTH

Dave

0
répondu Dave 2011-11-09 03:22:35

avait des problèmes similaires de mise à jour de 3.5 à 4.0. Dans mon cas, il y a un site Web racine, et des répertoires d'applications IIS virtuels sous ceci.

le code a bien fonctionné dans mes zones de développement et de transit.

dès Qu'il est allé sur le serveur de production, il s'est écrasé. Même si le code était le même.

ma solution était de supprimer le répertoire virtuel et de le recréer. S'assurer que le bassin d'applications est correct, et le asp.net version is correct. (mes serveurs sont Windows server 2003 avec IIS6).

une autre note IMPORTANTE - Vous ne pouvez pas exécuter plusieurs asp.net versions dans le même pool d'applications.

0
répondu jagdipa 2012-03-09 14:40:36

"la classe de base inclut le champ 'ScriptManager1', mais son type (Système.Web.INTERFACE.ScriptManager) n'est pas compatible avec le type de contrôle (Système.Web.INTERFACE.ScriptManager)."

Quelqu'un d'autre est tombé sur cette erreur?

j'ai eu ce genre d'erreur plusieurs fois, mais pas spécialement avec scriptmanager. Fondamentalement, il arrive quand vous avez un contrôle d'un type sur la page. Et disons que vous avez été inactif pendant un moment. Mais alors vous supprimer la commande et mettre une autre à sa place avec le même ID, qui est quand il peut se produire. Je crois qu'il est lié ou créé par un aspx dépassé.designer.cs.

pour régler le problème. J'ai dû soit changer le nom de L'ID du contrôle, soit reconstruire la solution. Je pense qu'il y a une autre façon trop. Je pense que si vous avez un aspx.designer.cs fichier le nom du fichier aspx vous pouvez le modifier dans.

0
répondu Alexander Ryan Baggett 2013-07-25 18:47:43