Error BC30002 de Tipo XXX no está definido

OK, este comienza a drive me crazy. Tengo una asp.net webapp. Bastante sencillo, la mayoría del código en el .aspx.vb, y un par de clases en App_Code.

El problema, que ha comenzado a ocurrir, solo por hoy (aunque la mayoría del código ya escrito), es que de vez en cuando, tengo este mensaje de error :

Error BC30002: Tipo de ‘XXX’ no está definido

El error se produce cada vez que puedo modificar los archivos en la carpeta App_Code. EDIT : OK, esto sucede también si yo no toque nada por un tiempo, a continuación, actualice la página. Todavía estoy tratando de averiguar exactamente cómo activar este error.

Sólo tengo que esperar un poco sin tocar nada, a continuación, actualice la página y funciona, pero es muy molesto.

Así que he buscado un poco, pero no encontré nada, excepto las importaciones que faltan. Alguna idea ?

Supongamos que usted tiene una solución con dos proyectos de Foo y Bar, y está trabajando en Foo mientras XXX (de tu pregunta) es la parte de la Barra. Antes de intentar referencia de la Barra.XXX dentro de los Foo, tenemos que añadir la Barra como una referencia a los Foo, ¿correcto? Si agrega Bar.dll (de la Barra bin/carpeta obj) como referencia, el error dado que en la pregunta se le ocurren ocasionalmente. Se fija mediante la adición de una Barra de un “proyecto de referencia” a Foo (es decir, en el marco del proyecto Foo derecho haga clic en Referencias > Agregar Referencia > Proyectos > garrapata Bar).

OriginalEl autor thomasb | 2008-09-17

4 respuestas

  1. 5

    Suena como un pre compilar problema, especialmente porque la mención de que usted obtenga el error y, a continuación, esperar y desaparece. ASP.NET todavía puede estar en el proceso de forma dinámica a compilar la aplicación o ha compilado los tipos en diferentes asambleas.

    Con la compilación dinámica, no está garantizado para tener diferentes archivos de código subyacente compila en la misma asamblea. Por lo que el tipo que se hace referencia puede no ser capaz de ser resuelto dentro de su precompilado de la asamblea.

    Pruebe a utilizar el “@” Referencia de la directiva para indicar el tiempo de ejecución que la página y el archivo que contiene el tipo debe ser compilado en la misma asamblea.

    @ Referencia – MSDN

    OriginalEl autor HaveThunk

  2. 4

    Creo que he encontrado el problema.

    Mi código era como que :

    Imports CMS
    
    Sub Whatever()
        Dim a as new Arbo.MyObject() ' Arbo is a namespace inside CMS
        Dim b as new Util.MyOtherObject() ' Util is a namespace inside Util
    End Sub

    No estoy seguro de por qué lo escribí así, pero resulta que el hecho de que yo estaba llamando a clases sin llamar la totalidad de su espacio de nombres o de la importación de toda su espacio de nombres se disparo el error.

    Reescribí como este :

    Imports CMS.Arbo
    Imports CMS.Util 
    
    Sub Whatever()
        Dim a as new MyObject()
        Dim b as new MyOtherObject()
    End Sub

    Y ahora funciona…

    OriginalEl autor thomasb

  3. 3

    Esto me pasó a mí después de agregar un nuevo proyecto a la solución vieja. Me bajó el marco de Destino coincide con el de otro más “antiguas” de los proyectos y el error se fue.

    Esto me acaba de suceder con un viejo programa VB que utiliza una biblioteca VB y los marcos de destino no coinciden. Cambio de los ajustes en el programa para que coincida con el archivo DLL trabajó para mí.

    OriginalEl autor Sjoerd Franken

  4. 0

    Suena como sucede cada vez que el sitio web de la gira (la aplicación se reciclan cada vez que se toca app_code y probablemente tiene IIS configurado para apagar el sitio web después de X minutos de inactividad).

    Apuesto a que tiene algo que ver con el asp.net proceso de trabajo de no disponer de los derechos de acceso en el servidor. Por lo que su tratando de cargar un ensamblado y se negó.

    Consulte este enlace y en la Tabla 19.3 para obtener una lista de todas las carpetas de la cuenta del proceso de trabajo debe tener acceso a en el fin de la función. Y no te olvides de darle derechos a todos los archivos y carpetas en el directorio virtual!

    OriginalEl autor Will

Deja un comentario

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *