2008-10-16 13 views
14

Podría necesitar algo de ayuda tratando de rastrear un error intermitente que he estado teniendo con nuestro proyecto ASP.Net durante bastante tiempo.Rastreo intermitente 'Referencia de objeto no establecida en una instancia de un objeto.' error en la compilación

De forma intermitente al construir la solución, la compilación fallará con el error "/: Build (web): Referencia de objeto no establecida en una instancia de un objeto." El error no tiene archivo asociado, línea, columna o información del proyecto. Lo extraño del error es que desaparecerá en las reconstrucciones sucesivas y no parece dar lugar a ningún error de tiempo de ejecución que hayamos encontrado una vez que la construcción sea exitosa. Algunas veces el error aparecerá una sola vez, a veces 3-4 veces, pero eventualmente la compilación finalizará exitosamente y luego parecerá que se compilará bien cada vez. No he podido establecer un patrón sobre por qué y cuándo ocurrirá el error, y dado que siempre se construye, no ha sido un problema crítico para nosotros. Solo una molestia Pero uno que quiero que se vaya por razones obvias.

Supongo que debo añadir que esta es una aplicación que fue desarrollada originalmente en ASP.net 1.1 y convertida a 2.0 y luego la heredé en algún lugar de la línea, así que no sé cuándo surgió el problema originalmente. En lo que a todos se refiere, siempre ha estado ahí.

Obviamente, no espero que alguien sepa cuál es la causa de mi problema, ya que eso requeriría que mirasen toda nuestra solución para detectar posibles problemas. Solo espero que alguien me pueda dar un par de ideas nuevas sobre cómo rastrear la fuente real del error en el código. Tiene que venir de algún lado, ¿verdad? ¿Cómo vas a averiguar dónde?

Respuesta

0

Una "Referencia de objeto no configurada para una instancia de un objeto" es claramente un error en tiempo de ejecución, no un error en tiempo de compilación. Entonces, lo que eso me dice es que Visual Studio se está ahogando en algo, que puede no estar necesariamente en su código, o que algo en su código solo está causando indirectamente.

Siguiente pregunta: ¿Esto ocurre solo en Visual Studio o aparece lo mismo cuando compila con MSBuild o CSC?

+0

No he intentado utilizar MSBuild todavía, pero definitivamente es algo que hacer para averiguar si el problema es con Visual Studio o no. –

0

Lo que es realmente extraño es que se trata de un error en tiempo de ejecución. No deberías ver eso en tiempo de compilación. ¿Tiene algún paso anterior o posterior a la construcción adjunto a la solución? ¿Alguna prueba de unidad que estés incluyendo con tu proceso de 'compilación'?

¿Dónde aparece este error?

+0

No hay pasos previos o posteriores a la compilación o pruebas unitarias. El error aparece en el medio del proceso de compilación en el mismo lugar cada vez. La ventana de Salida enumera todos los directorios que está construyendo y luego arroja ese error. Una siguiente creación exitosa eventualmente "pasa" ese punto. –

0

Compruebe el registro de la aplicación de su Visor de eventos: debe indicarle dónde se está produciendo la excepción.

+1

No aparece nada en el registro de la aplicación en el Visor de eventos relacionado con este problema. –

0

Solo para aclarar, ¿es el compilador el que se está ahogando? ¿Estás haciendo algo extraño con las directivas #define y #if en tu código? Tal vez se está haciendo algo fuera de lugar en algún momento ... Es sólo una idea ...

0
  • ver si hay alguna-construir colocar eventos que podrían estar fallando. Estos se pueden encontrar en la página de propiedades de cada proyecto.

  • Intente utilizar Rebuild Solution en lugar de Build Solution. Es posible que deba agregar Rebuild Solution desde Herramientas> Personalizar. Si su aplicación web instala o registra cualquier servicio de Windows, y esos servicios se inician, Rebuilding se abre a través de ese tipo de problemas.

6

He visto esto cuando tienes un control web en una página donde no hay HTML válido. Si su código detrás está tratando de hacer algo con el control, no podrá encontrarlo y le dará Referencia de objeto ...error en tiempo de compilación. En mi experiencia, no crea un error de tiempo de ejecución, y el proyecto se compilará si el archivo en cuestión está cerrado en el momento de la compilación. HTH, buena suerte!

+0

Hmm esto podría ser. Sé que tenemos un montón de HTML que no valida en este punto porque fue escrito en 1.1 días. Puede que solo suceda cuando tengo archivos abiertos, pero tendré que probar y ver. –

+0

GRACIAS ... Tuve este problema ... empecé a jugar con el HTML de la página ... todavía no estoy completamente seguro de lo que era al final (aunque sospecho que hay algún tipo de conflicto de nombres) porque acabo de eliminar el poco en lo que estaba trabajando y volví a agregar los controles ... ahora el error se ha ido. Gracias, +1 – Gravitate

+0

Oh ... espere ... no ... está de vuelta :( – Gravitate

5

Ejecutar este comando en la línea de comandos y ver si le da alguna información más detallada

% windir% \ Microsoft.NET \ Framework \ v3.5 \ msbuild.exe YourSolution.sln/v: n

3

Tuve esto en tiempo de compilación cuando mi proyecto contenía fuentes de datos personalizadas (mis propios objetos devolviendo colecciones) con errores de compilación (es decir, mis objetos tenían errores).

También obtendrá este error si intenta agregar una fuente de datos y su proyecto no tiene fuentes de datos en la raíz del proyecto (por ejemplo, si ha puesto todas sus clases de origen de datos en una subcarpeta). La única solución que encontré fue crear un origen de datos en la raíz del proyecto.

Lo siento, no debe ser más preciso, pero parece que hay varias cosas que pueden ir mal con las fuentes de datos/objetos en tiempo de compilación.

3

Lo primero que probaría sería aumentar la verbosidad del compilador. Esto se puede configurar en las opciones de Visual Studio, p. "Herramientas-> Opciones-> Proyectos y soluciones-Generar y ejecutar-> Verbosidad de salida de compilación del proyecto MSBuild" para VS2005. Si lo configura en diagnóstico, debe decirle lo que está haciendo en el momento en que se produce la excepción como mínimo.

+0

Frustrante, incluso en modo de diagnóstico, este es el alcance de la información proporcionada. 12> Validando el sitio web 12>: Construir (web): referencia de objeto no establecida en una instancia de un objeto. –

+0

Es bueno saber acerca de la configuración de verbosidad: desafortunadamente, no proporcionó ninguna información adicional sobre el error –

5

Para realizar un seguimiento de este problema, nunca rastreamos el origen del error, pero desapareció cuando actualizamos a Visual Studio 2008 y convertimos el proyecto a una aplicación web.

4

Tuve este problema durante mucho tiempo y finalmente encontré una solución que funciona bien para mí. No tiene sentido para mí ... pero alterando mi archivo web.config con la siguiente obtiene definitivamente deshacerse de este error de generación intermitente:

<buildProviders> 
    <add extension=".rdlc" type="Microsoft.Reporting.RdlBuildProvider, Microsoft.ReportViewer.Common, Version=9.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a"/> 
    <!-- add this line below --> 
    <remove extension=".rdlc"/> 
</buildProviders> 

Esperanza esta ayuda!

+0

que no funcionó en mi caso. – Menace

+0

Esto funcionó para mí, gracias! Tengo informes en mi proyecto. – kpasgma

Cuestiones relacionadas