Récemment, mon équipe a converti un projet ASP.NET de .NET 1.1 à .NET 2.0. Tout est assez bon jusqu'à présent, à l'exception d'une page Web.
Voici le message d'erreur que j'ai reçu lorsque j'ai essayé d'ouvrir cette page:
Erreur serveur dans l'application '/'.
Description de l'erreur d'analyse: Une erreur S'est produite lors de l'analyse syntaxique d'une ressource Requise pour traiter cette demande . Veuillez consulter les détails de l'erreur d'analyse spécifique Ci-dessous et modifier le fichier source de manière appropriée.
Message d'erreur de l'analyseur: Correspondance ambigu Trouvée.
Erreur de source:
Ligne 1: <% @ Control Language = "c #" AutoEventWireup = "false" Codebehind = "Template.ascx.cs" Inherits = "eReq.Web.WebControls. Template.Template " TargetSchema =" http://schemas.Microsoft.com/intellisense/ie5 "%> Ligne 2: Ligne 3: Fonction ExpandCollapse_Template (inBtn, InSection, inSectionID) {
Fichier source: /WebControls/Template/Template.ascx
Ligne 1-------------------------------------------------- ------------------------------ Informations sur la version: Microsoft .NET Version du Framework: 2.0.50727.3053; Version ASP.NET: 2.0.50727.3053
J'ai essayé de renommer une classe et un nom de fichier mais cela n'a pas fonctionné.
Quelqu'un a une idée à ce sujet?
Il est peut-être apparu à cause de différents noms de composants? par exemple, Button1 et button1, il est compilé comme sensible à la casse, mais exécuté comme sensible à la casse.
Dans votre fichier ASCX, parcourez chaque contrôle et modifiez son identifiant. Par exemple,
<asp:TextBox id="foo" />
changez le en
<asp:TextBox id="foo1" >
Vous avez probablement un contrôle avec un ID correspondant à une propriété de votre fichier ascx. Par conséquent, lorsque le compilateur tente de faire entrer en collision des variables d'instance.
J'ai le même problème et le problème est résolu. La solution est en cours de vérification de votre code et vous trouverez deux contrôles du même nom:
protected Button Home;
protected System.Web.UI.HtmlControls.HtmlAnchor home;
vous devez effacer une ligne ou la commenter.
La réponse choisie semble être la bonne.
Dans mon cas, j’ai trouvé que j’utilisais une variable dans le codebehind avec le même nom qu’un contrôle dans le fichier aspx, mais avec une utilisation différente de la casse.
Je traver votre web.config pour 1.1 et 2.0 références à la même DLL. Dans la plupart des cas, il s'agissait de System.Web.Extensions.
Vérifiez également les @ registres dans Pages si cela échoue.
Bonne chance (ce n'est pas un bug amusant à trouver!)
Dan