Question

Nous obtenons un bug étrange dans un serveur de production. Nous avons une trace de pile, mais pas de numéros de ligne, donc je connais la méthode où se trouve le bug, mais pas la ligne exacte. Il se plaint d'une "référence d'objet non définie sur une instance d'un objet". Quelque chose est nul.

Après avoir regardé le code, les deux seuls coupables potentiels que je peux voir sont les deux lignes consécutives qui lisent:

string currentPath = this.Request.CurrentExecutionFilePath;
string[] parts = currentPath.Split('/');

Ce qui jetterait si la demande était nul, ou si le cours de mise en œuvre de la demande était nul. Je ne suis pas vraiment clair sur le moment (ou même si) cela peut arriver. Suis-je en aboyant le mauvais arbre ici? (Ce code semble être exécuté pendant la partie de chargement du cycle de vie de la page).

Était-ce utile?

La solution

Avez-vous une sortie PDB activée pour votre version de version?

Si vous le faites, vous n'auriez besoin que de déployer le PDB sur votre serveur de production pour obtenir des numéros de ligne dans votre trace de pile.

(PDB et les DLL doivent correspondre)

Autres conseils

La demande et / ou HttpContext peuvent être nulles si vous lancez des threads à partir de votre premier. (Traitement asynchrone, etc.)

Curieusement, j'ai vu une erreur nul HttpRequest (plusieurs) fois sur un serveur de production sans jamais être en mesure de découvrir la cause.

Je sais que cela ne vous est pas utile, mais je n'écris pas de solidarité :)

Une chose potentielle dont je me souviens à moitié était de faire avec IIS ne pas cartographier la racine à /default.aspx, mais encore une fois, c'était il y a longtemps, alors ne faites pas trop attention à ces divagations inutiles puissantes !!!

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top