2009-12-02 8 views
0

Tout à coup mon application distribue cela dans l'observateur d'événements d'application:Aide System.StackOverflowException

EventType clr20r3, P1 w3wp.exe, P2 6.0.3790.3959, P3 45d6968e, P4 app_code.ahowircm, P5 0.0.0.0, P6 4b167253, P7 30, P8 0, système P9.stackoverflowexception, P10 NIL.

Rien n'a changé depuis hier, et tout a bien fonctionné avant. Le serveur exécute des services web .net 2.0 sur Windows Server 2003.

Edit:

Aussi je suis en cours d'exécution sur ce deux serveurs, 2008R2 et 2003, le même code, sur 2008R2 il fonctionne très bien, mais 2003, il arrête le pool d'applications.

+0

Seriez-vous en mesure d'afficher une partie de votre code de service Web (peut-être quelques méthodes web) afin que nous puissions voir ce que votre service web est en train de faire? –

+1

Oui, ne mettez pas quelque chose comme «urgent» dans le titre.Ce n'est pas un site de support payé et personne ne va tout laisser tomber et vous aider juste parce que vous avez une urgence. – Chris

+1

appartient à serverfault.com? –

Répondre

4

Cela indique généralement un appel récursif d'emballement (intentionnel ou non). Difficile à dire sans voir de code.

+1

Je suis d'accord semble un jeu récursif ou obtenir à partir d'une propriété de la page. – MattC

+0

C'était un appel récursif dans une méthode rarement utilisée. – hminaya

+0

Content que vous l'ayez trouvé. –

3

Votre code n'a peut-être pas changé, mais il y a des chances que vos données le soient. Vérifiez si des données ajoutées récemment entraîneront des conditions inhabituelles.

+0

D'accord, ressemble à des données inattendues –

1

Vous avez vraiment besoin d'une trace de pile complète pour comprendre ce qui se passe. Enregistrez-vous vos exceptions n'importe où? Sinon, vous pouvez rapidement wireup an event handler.

+0

Il n'y a pas d'espace de noms ahowircm dans mon application ...... J'ajoute ceci. – hminaya

6

Pas vraiment une réponse, plus d'une "info intéressante liée" sur les entrées des journaux d'événements CL20r3.

clr20r3 explaination

P1 Nom de l'application

P2 version application

timbre temps P3Application

P4 Assemblée/Nom du module

P5 Montage/version Module

P6 Cul embly/horodatage du module

P7 MethodDef

P8 IL décalage

P9 Nom d'exception

Vous pouvez utiliser ILDASM sur P1, rechercher un MethodDef de 060000xx (où xx est P7), pour obtenir la méthode de lancer.

Ensuite, utilisez le réflecteur pour voir le code, visualisez-le en mode IL et trouvez la ligne de IL à P8.

Souvent, il vous dirigera directement vers la ligne qui a jeté l'exception.

+0

Mais P1 est w3wp.exe – hminaya

+0

C'est IIS ce qui est attendu pour une application web –

+0

Vous ne vouliez pas exécuter Refection sur w3wp, je pensais que c'était mon application web qui causait le problème, mais pas dans IIS. Il me manque quelque chose? – hminaya

0

Ceci est un problème lié au problème d'analyse de trou de boucle. Comme j'ai bon exemple pour vous, afin que vous puissiez comprendre facilement:

using System; 
using System.Collections.Generic; 
using System.Linq; 
using System.Text; 
using AddFunction; 

namespace sharat 
{ 
public class Program 
{ 
public class A 
{ 
    public A() 
    { 
     object obj = new B(); 
    } 
} 
public class B 
{ 
    public B() 
    { 
     object obj = new A(); 
    } 

} 



    public static void Main(string[] args) 

    { 
     // long i = 10; 
     // Console.Write(i.ToString()); 
     // object obj = i; 
     // Console.WriteLine(obj.ToString()); 
     // i++; 

     //Console.WriteLine(i.ToString()); 
     //i++; 
     ////obj = i; 
     //Console.WriteLine(obj.ToString()); 
     //Console.WriteLine(i.ToString()); 
     //Console.WriteLine(obj.ToString()); 
     long a = 9; 
     long b = 130; 

     long d = Add.add(a,b); 
     Console.WriteLine(d); 
     Console.ReadLine(); 
     object test = new B(); 
     Console.WriteLine(d); 
    } 
    } 
    }