1

Nous recevons une erreur pour laquelle il est difficile de trouver une cause. Le message d'erreur affiché est "Référence d'objet non définie sur une instance d'un objet". Je comprends ce qu'il dit, et nous avons trouvé l'objet qui est nul, mais nous ne pouvons pas déterminer pourquoi cela se produit.Erreur de serveur ASP.NET 4.0 - "Référence d'objet non définie sur une instance d'un objet" sur la machine virtuelle 32 bits

L'application est une application ASP.NET 4.0. Une fois connecté, le système vérifie une variable Application définie dans Session_Start(). La variable est nulle et provoque cette erreur (voir ci-dessous pour le message d'erreur complet affiché).

Nous avons constaté que cela se produit uniquement sur une machine virtuelle 32 bits. Voici quelques-unes que nous avons testé sur:

  • XP virtuel - Erreur serveur
  • XP non virtuel - fonctionne
  • 2003 32bit virtuel - erreur de serveur
  • 2003 32 bits non virtuel - travaux
  • 2008 64bit non virtuel - travaux
  • 2008 32 bits virtuel - erreur de serveur
  • 2008 64bit virtuel - travaux

Nous avons testé en déplaçant l'ensemble du projet sur la machine virtuelle et l'avons compilé à l'aide de VS 2010 Express. L'application a ensuite fonctionné correctement. L'application a ensuite fonctionné correctement. Par conséquent, il semble que si cette application est précompilée, sur une machine virtuelle 32 bits, l'erreur NullReferenceException apparaîtra.

Puisque nous avons prouvé que cela fonctionne sur la plupart des machines, nous sommes confiants que ce n'est pas le code. De quoi avons-nous besoin de vérifier maintenant? Y at-il quelque chose qui n'est pas installé sur les machines virtuelles? Toute suggestion de choses à rechercher ou à essayer serait appréciée. Si vous avez besoin de clarifier quelque chose ou de donner plus d'informations, s'il vous plaît faites le moi savoir.

Server Error in '/TestSite' Application. Object reference not set to an instance of an object. Description: An unhandled exception occurred during the execution of the current web request. Please review the stack trace for more information about the error and where it originated in the code.

Exception Details: System.NullReferenceException: Object reference not set to an instance of an object.

Source Error:

An unhandled exception was generated during the execution of the current web request. Information regarding the origin and location of the exception can be identified using the exception stack trace below.

Stack Trace:

[NullReferenceException: Object reference not set to an instance of an object.]
HomeMasterPage.Page_Load(Object sender, EventArgs e) +204
System.Web.Util.CalliHelper.EventArgFunctionCaller(IntPtr fp, Object o, Object t, EventArgs e) +14 System.Web.Util.CalliEventHandlerDelegateProxy.Callback(Object sender, EventArgs e) +35
System.Web.UI.Control.OnLoad(EventArgs e) +91
System.Web.UI.Control.LoadRecursive() +74 System.Web.UI.Control.LoadRecursive() +146 System.Web.UI.Page.ProcessRequestMain(Boolean includeStagesBeforeAsyncPoint, Boolean includeStagesAfterAsyncPoint) +2207

Version Information: Microsoft .NET Framework Version:4.0.30319; ASP.NET Version:4.0.30319.1

mis à jour après les commentaires

void Application_Start(object sender, EventArgs e) 
    { 
     // Code that runs on application startup 
     ArrayList ArrActiveUser = new ArrayList(); 
     Application["ArrActiveUser"] = ArrActiveUser; 
    } 

... 


    void Session_Start(object sender, EventArgs e) 
    { 
     // Code that runs when a new session is started 
     ArrayList ActiveUsers = new ArrayList(); 
     if (Application["ArrActiveUser"] != null) 
     { 
      ActiveUsers = (ArrayList)Application["ArrActiveUser"]; 
     } 
     ActiveUsers.Add(Session.SessionID); 
     Application["ArrActiveUser"] = ActiveUsers; 
    } 
+0

Pouvez-vous publier le code de 'HomeMasterPage.Page_Load' et nous indiquer la ligne 204? Nous aimerions le voir avant d'accepter votre conclusion selon laquelle le code n'est pas erroné. –

+0

... et nous montre également le code dans 'Session_Start' qui initialise la variable au niveau de l'application. – LukeH

+0

C'est la chose étrange à propos de cette erreur. Il n'y a pas de ligne 204 dans HomeMasterPage. L'objet nul est ici ArrayList ActiveUsers = (ArrayList) Application ["ArrActiveUser"]; ActiveUsers.Remove (Session.SessionID); Application ["ArrActiveUser"] = ActiveUsers; – Jarrod

Répondre

0

Utilisez-vous un StateServer? Session_Start/Session_End ne sont jamais déclenchés à moins que votre état de session ne soit inProc, je crois.