Foro de elhacker.net

Programación => .NET (C#, VB.NET, ASP) => Mensaje iniciado por: motocros_elche en 7 Diciembre 2014, 11:30 am



Título: Problema al iniciar sesión "NullReferenceException:"
Publicado por: motocros_elche en 7 Diciembre 2014, 11:30 am
Recientemente he instalado en mi servidor un script de administración web y a la hora de poner el nombre de usuario y la contraseña recibo este error:

Código:
Error de servidor en la aplicación '/'.

Referencia a objeto no establecida como instancia de un objeto.

Descripción: Excepción no controlada al ejecutar la solicitud Web actual. Revise el seguimiento de la pila para obtener más información acerca del error y dónde se originó en el código.

Detalles de la excepción: System.NullReferenceException: Referencia a objeto no establecida como instancia de un objeto.

Error de código fuente:

Se ha generado una excepción no controlada durante la ejecución de la solicitud Web actual. La información sobre el origen y la ubicación de la excepción pueden identificarse utilizando la excepción del seguimiento de la pila siguiente.

Seguimiento de la pila:


[NullReferenceException: Referencia a objeto no establecida como instancia de un objeto.]
   _Default.loginButton_Click(Object sender, EventArgs e) +50
   System.Web.UI.WebControls.Button.OnClick(EventArgs e) +9627382
   System.Web.UI.WebControls.Button.RaisePostBackEvent(String eventArgument) +103
   System.Web.UI.WebControls.Button.System.Web.UI.IPostBackEventHandler.RaisePostBackEvent(String eventArgument) +10
   System.Web.UI.Page.RaisePostBackEvent(IPostBackEventHandler sourceControl, String eventArgument) +13
   System.Web.UI.Page.RaisePostBackEvent(NameValueCollection postData) +35
   System.Web.UI.Page.ProcessRequestMain(Boolean includeStagesBeforeAsyncPoint, Boolean includeStagesAfterAsyncPoint) +1724
Información de versión: Versión de Microsoft .NET Framework:4.0.30319; Versión ASP.NET:4.0.30319.34237

No sé si proviene del web.config que algo no esta correcto o del servidor que requiere de alguna aplicación y/o configuración.

Después de buscar y buscar no consigo dar con que podría ser.

Utilizo Windows Server 2008 R2 Datacenter y Plesk Panel 12 como sistema de hosting, versión de ASP.NET 4.5 y MSSQLSERVER2012.

No sé si es necesario que publique algo más para encontrar la causa de este error.
A ver si alguien puede echarme una mano y así consigo dar con la solución.

Gracias de antemano, saludos.

Añado:
No sé si tal vez es por que el servidor utiliza ASP.NET 4.5 y net framework 4.5 y el script esta compilado para la versión 4.0, ya que abajo aparece la versión 4.0 en la web del error y el servidor ni si quiera tiene esa versión para elegir, tan solo la 3.5 y la 4.5 disponibles para elegir desde Plesk, lo mismo esto no tiene importancia pero lo pongo por si acaso fuese este el error.


Título: Re: Problema al iniciar sesión "NullReferenceException:"
Publicado por: Eleкtro en 7 Diciembre 2014, 15:47 pm
No manejo ASP.Net, pero el error es self-explanatory, estás intentando acceder a un objeto que no ha sido instanciado.

Te muestro una manera simple de reproducir dicha excepción, para que se entienda mejor:
Código
  1. Public Class Form1
  2.  
  3.    Sub Test()
  4.  
  5.        Dim obj As IO.FileInfo
  6.        MessageBox.Show(obj.DirectoryName)
  7.  
  8.    End Sub
  9.  
  10. End Class

Y un ejemplo de como se solucionaría (instanciando la class FileInfo en este caso):

Código
  1. Public Class Form1
  2.  
  3.    Sub Test()
  4.  
  5.        Dim obj As IO.FileInfo
  6.        obj = New IO.FileInfo("archivo.ext")
  7.        MessageBox.Show(obj.DirectoryName)
  8.  
  9.    End Sub
  10.  
  11. End Class

EDITO: La misma excepción puede darse si estás intentando convertir el texto VACÍO de algún control.

Así que solo tienes que repasar tú código fuente para encontrar el objeto que no estás instanciando.

Ayudaría que mostrases el código del eventhandler: loginButton_Click(sender As Object, e As EventArgs), aunque como ya digo, no manejo ASP.Net.

Saludos!


Título: Re: Problema al iniciar sesión "NullReferenceException:"
Publicado por: motocros_elche en 9 Diciembre 2014, 12:32 pm
No manejo ASP.Net, pero el error es self-explanatory, estás intentando acceder a un objeto que no ha sido instanciado.

Te muestro una manera simple de reproducir dicha excepción, para que se entienda mejor:
Código
  1. Public Class Form1
  2.  
  3.    Sub Test()
  4.  
  5.        Dim obj As IO.FileInfo
  6.        MessageBox.Show(obj.DirectoryName)
  7.  
  8.    End Sub
  9.  
  10. End Class

Y un ejemplo de como se solucionaría (instanciando la class FileInfo en este caso):

Código
  1. Public Class Form1
  2.  
  3.    Sub Test()
  4.  
  5.        Dim obj As IO.FileInfo
  6.        obj = New IO.FileInfo("archivo.ext")
  7.        MessageBox.Show(obj.DirectoryName)
  8.  
  9.    End Sub
  10.  
  11. End Class

EDITO: La misma excepción puede darse si estás intentando convertir el texto VACÍO de algún control.

Así que solo tienes que repasar tú código fuente para encontrar el objeto que no estás instanciando.

Ayudaría que mostrases el código del eventhandler: loginButton_Click(sender As Object, e As EventArgs), aunque como ya digo, no manejo ASP.Net.

Saludos!
En ninguna parte aparece nada relacionado con eventhandler ni lo demás que mencionas, así que difícil...


Título: Re: Problema al iniciar sesión "NullReferenceException:"
Publicado por: Eleкtro en 9 Diciembre 2014, 14:07 pm
En ninguna parte aparece nada relacionado con eventhandler ni lo demás que mencionas, así que difícil...

En el StackTrace de la excepción que has mostrado te está especificando claramente el nombre del event-handler que está implicado, loginButton_Click, a eso es a lo que me refiero, busca ese método y analiza bien las instrucciones del interior de su bloque.

Además, puedes probar a compilar en modo Release para que en el StackTrace te indique la linea exacta donde se produce la excepción (y no solo los offsets como está mostrando), y con eso ya podrás localizar el objeto conflictivo.

Es imposible ayudarte más sin conocer la linea y la intrucción que hay escrita en la linea donde se produce la excepción.

De todas formas, te explicaré de nuevo cual es el problema, pero de otro modo:
Estás utilizando una variable que ha sido declarada pero no inicializada, y estás tratando de acceder a uno de sus miembros no estáticos (un ejemplo de esto ya lo mostré en el comentario de arriba).


Troubleshooting Exceptions: System.NullReferenceException (http://msdn.microsoft.com/en-us/library/sxw2ez55%28v=vs.90%29.aspx)

Saludos!