2009-05-22 27 views
8

Cuando he realizado mi último programa de asp.net y tratando de ejecutar en el servidor de prueba, que estoy recibiendo este errorBC30560: 'default_aspx' es ambiguo en el espacio de nombres 'ASP'

Line 46:    Dim dependencies() As String 
Line 47:    CType(Me,Global.System.Web.UI.Page).AppRelativeVirtualPath = "~/default.aspx" 
Line 48:    If (Global.ASP.default_aspx.__initialized = false) Then 
Line 49:     dependencies = New String(0) {} 
Line 50:     dependencies(0) = "~/default.aspx" 


Source File: C:\WINDOWS\Microsoft.NET\Framework\v2.0.50727\Temporary ASP.NET Files\ocbuild\c0c442ff\f0292c99\App_Web_default.aspx.cdcab7d2.4ubu1wgu.0.vb Line: 48 

errores detallados cuando ampliar la salida del compilador ...

Microsoft (R) Visual Basic Compiler version 8.0.50727.3053 
for Microsoft (R) .NET Framework version 2.0.50727.3053 
Copyright (c) Microsoft Corporation. All rights reserved. 

C:\WINDOWS\Microsoft.NET\Framework\v2.0.50727\Temporary ASP.NET Files\ocbuild\c0c442ff\f0292c99\App_Web_default.aspx.cdcab7d2.4ubu1wgu.0.vb(48) : error BC30560: 'default_aspx' is ambiguous in the namespace 'ASP'. 

      If (Global.ASP.default_aspx.__initialized = false) Then 
       ~~~~~~~~~~~~~~~~~~~~~~~        
C:\WINDOWS\Microsoft.NET\Framework\v2.0.50727\Temporary ASP.NET Files\ocbuild\c0c442ff\f0292c99\App_Web_default.aspx.cdcab7d2.4ubu1wgu.0.vb(51) : error BC30560: 'default_aspx' is ambiguous in the namespace 'ASP'. 

       Global.ASP.default_aspx.__fileDependencies = Me.GetWrappedFileDependencies(dependencies) 
       ~~~~~~~~~~~~~~~~~~~~~~~                 
C:\WINDOWS\Microsoft.NET\Framework\v2.0.50727\Temporary ASP.NET Files\ocbuild\c0c442ff\f0292c99\App_Web_default.aspx.cdcab7d2.4ubu1wgu.0.vb(52) : error BC30560: 'default_aspx' is ambiguous in the namespace 'ASP'. 

       Global.ASP.default_aspx.__initialized = true 
       ~~~~~~~~~~~~~~~~~~~~~~~      
C:\WINDOWS\Microsoft.NET\Framework\v2.0.50727\Temporary ASP.NET Files\ocbuild\c0c442ff\f0292c99\App_Web_default.aspx.cdcab7d2.4ubu1wgu.0.vb(76) : error BC30560: 'default_aspx' is ambiguous in the namespace 'ASP'. 

     Private Sub __BuildControlTree(ByVal __ctrl As default_aspx) 
                 ~~~~~~~~~~~~ 
C:\WINDOWS\Microsoft.NET\Framework\v2.0.50727\Temporary ASP.NET Files\ocbuild\c0c442ff\f0292c99\App_Web_default.aspx.cdcab7d2.4ubu1wgu.0.vb(100) : error BC30560: 'default_aspx' is ambiguous in the namespace 'ASP'. 

      Me.AddWrappedFileDependencies(Global.ASP.default_aspx.__fileDependencies) 
              ~~~~~~~~~~~~~~~~~~~~~~~      
C:\WINDOWS\Microsoft.NET\Framework\v2.0.50727\Temporary ASP.NET Files\ocbuild\c0c442ff\f0292c99\App_Web_default.aspx.cdcab7d2.4ubu1wgu.1.vb(31) : error BC30560: 'default_aspx' is ambiguous in the namespace 'ASP'. 

      Return New ASP.default_aspx 
         ~~~~~~~~~~~~~~~~ 

comprobado que algunas cosas y todos ellos resultaron ser bien:

[*] por defecto no está definido dos veces en cualquier lugar

[*] Todo estaba funcionando en la última semana de regreso de liberación 1

[*] No hay archivos antiguos que están tiempo mantenerse con los archivos compilados. También eliminé los archivos temporales muchas veces.

[*] He tratado con otros archivos aspx y todos les está dando error ambigua (error en diferentes archivos de origen ...)

[*] La fuente original funciona igual bien! solo aparece el error en el código compilado .

Cualquier idea o pista sobre cómo resolver esta ambigüedad.

Gracias SK

Respuesta

3

Bien, aquí está lo que encontré después de pasar tres días sobre este problema.

Finalmente, pensé que si eliminaba todos los proyectos de la solución excepto uno (que causaba problemas) podría aislarlo por default.skin. El problema parecía ser muy errático porque comenzó a desaparecer si borraba ciertas líneas de este archivo. Sin embargo, esto no fue consistente y el problema vino y se fue al azar.

Así que después de perder todas las esperanzas de solucionarlo en el código, decidí probarlo de otra manera. Cambié la opción del comando aspnet_compiler de -prefix switch (un dll se crea para cada carpeta) a -o (todo el ui compilado se pone en un dll), ¡el problema desapareció!

Parece que el problema se debe a algún error en el aspnet_compiler. Se activó en esta versión de alguna manera que no pude entender.

Estoy pensando en pasar a asp.net 3.5SP1 más estable (o quizás esperar a asp.net 4.0) alguna sugerencia?

+2

Todavía estoy recibiendo este problema en asp.net 4.0 –

0

he encontrado que los espacios de nombres de mezcla realmente puede confundir las cosas.

La mejor manera de limpiarlo es eliminar todas las declaraciones del espacio de nombres en su proyecto web y asegurarse de que sean coherentes en los proyectos dependientes. No olvide verificar las propiedades del proyecto y los archivos .designer.vb generados.

Además, parece que tiene un directorio de nivel superior llamado ASP, probablemente tampoco ayude. Me desharía de ese directorio por completo y veré si eso ayuda a resolver el problema. Hace un tiempo, informé de esto a MS como un error, e incluso les proporcioné un ejemplo reproducible, pero nunca supe nada de ellos.

+0

¡Hola! Gracias por responder, no estoy seguro de qué quiere decir eliminar la declaración del espacio de nombres en el proyecto web. Apreciaría un poco más de aclaración. Los proyectos que estoy usando son "proyecto de aplicación web" y está escrito en C# (no estoy seguro de por qué está el mensaje de error aspnet_compiler en vb.net !!!, tal vez porque están compilados) También no tengo ninguna carpeta ASP. Este parece ser el espacio de nombre predeterminado que usa asp.net cuando se compila. – Samuel

+0

Bueno, el ejemplo de código anterior es vb, no C#, por lo que parece que tienes algunos problemas más grandes que resolver. Pero encontrará que a veces cada definición de clase se envuelve en una declaración de Namespace: abra cada vb y designer.vb (o cs/designer.cs) y elimine TODAS las declaraciones de Namespace, e intente reconstruir la aplicación. – chris

+0

supongo que quiere decir que si el archivo C# es algo así como espacio de nombres mycompany.myfolder { public class MiClase { ... }} debemos eliminar la declaración de espacio de nombres? Si es así, ¿cómo podemos poner las clases en el espacio de nombres? La solución tiene cientos de archivos y muchos espacios de nombres. Además, todo estaba funcionando en la última versión hace aproximadamente 2 semanas ... no pude entender qué cambió después de eso para causar esto ... – Samuel

2

Acabo de resolver este problema con la ayuda siguiente enlace: http://www.netomatix.com/development/usercontrols2.aspx

Añadir esto en aspx o página ascx NombredeClase = "MyModule"

<%@ Control Language="vb" AutoEventWireup="false" CodeBehind="MyModule.ascx.vb" ClassName="MyModule" %> 
+0

Gracias, señor. Esta fue una solución rápida y simple. De mis más de 50 controles de usuario, solo uno ha tenido este problema de compilación (hasta ahora). – ps2goat

0

He resuelto este problema poniendo el espacio de nombres encima de la clase

Namespace yournamespace 

Public Class yourclass name 

end class 

end Namespace 
0

me encontré con este problema en consumir proyecto cuando el cambio de nombre/espacio de nombres de una biblioteca que consume proyecto de referencia.

Problema al consumir proyecto La carpeta Bin tiene una copia de DLL con cada nombre/nombre de espacio de nombres.

Borrando la carpeta de Bin del proyecto consumidor y reconstruyendo resuelto.

0

Debe asegurarse de que el control del usuario también se copie con la página en su servidor de prueba.

Cuestiones relacionadas