Καλώς ορίσατε στο dotNETZone.gr - Σύνδεση | Εγγραφή | Βοήθεια
σε

 

Αρχική σελίδα Ιστολόγια Συζητήσεις Εκθέσεις Φωτογραφιών Αρχειοθήκες

Πρόβλημα με ASP.NET Application από XP Pro σε 2003 Server

Îåêßíçóå áðü ôï ìÝëïò stsoft. Τελευταία δημοσίευση από το μέλος stsoft στις 24-03-2007, 15:33. Υπάρχουν 3 απαντήσεις.
Ταξινόμηση Δημοσιεύσεων: Προηγούμενο Επόμενο
  •  23-03-2007, 11:32 26920

    Πρόβλημα με ASP.NET Application από XP Pro σε 2003 Server

    Περιγραφή Προβλήματος

    1.Έχω ASP.NET 2002 Application (.dll 1.1 Framework) η οποία τρέχει κανονικά και γίνεται compilation σε Windows XP Proffesional (Σε επεξεργαστή Pentium(R)D στα 2.8GHz)

    2.Ταυτόχρονα έχω προηγούμενο version της ίδιας ASP.NET 2002 Application (.dll) που είχε γίνει compiled σε Windows XP Proffesional (Σε επεξεργαστή Pentium(R) ). Ο υπολογιστής τα έχει φτύσει.

    3.Μεταφέρω την καινούργια .dll σε Windows 2003 Server (Pentium(R)4 στα 3.00 GHz ) και παίρνω δύο ταυτόχρονα Error

    Application Log

    Source .NET Runtime

    EventId 0

    The description for Event ID ( 0 ) in Source ( .NET Runtime ) cannot be found. The local computer may not have the necessary registry information or message DLL files to display messages from a remote computer. You may be able to use the /AUXSOURCE= flag to retrieve this description; see Help and Support for details. The following information is part of the event: .NET Runtime version 1.1.4322.2379- w3wp.exe - Common Language Runtime Debugging Services: Application has generated an exception that could not be handled.

    Process id=0xf5c (3932), Thread id=0x1404 (5124).

    Click OK to terminate the application.

    Click CANCEL to debug the application..

    System Log

    Source W3SVC

    EventId 1009

    A process serving application pool 'DefaultAppPool' terminated unexpectedly. The process id was '3932'. The process exit code was '0x800703e9'.

    For more information, see Help and Support Center at http://go.microsoft.com/fwlink/events.asp.

    4. Επαναφέρω το παλαιό version της .dll και τρέχει κανονικά

    5. Σύμφωνα με την Microsoft to error 0x800703e9 προέρχεται από StackOverflowException

    6. Προσπάθησα να βρω καταρχήν από ποια γραμμή του κώδικα ξεκινά, αφαιρώντας την εκτέλεση τμημάτων του κώδικα (χωρίς τα τμήματα η εφαρμογή έτρεχε κανονικά)

    7. Η γραμμή η οποία εμφανίζει το πρόβλημα είναι δήλωση νέας custom κλάσης η οποία υπήρχε απαράλλαχτη στο παλαιό version (κλάση και δήλωση) : Dim aaa as New clsbbb(.., .., .., )

    8. Compilation από άλλο υπολογιστή έχει το ίδιο αποτέλεσμα

    9. Το άμεσο συμπέρασμα είναι ότι ή φταιει το compilation στο νέο μηχάνημα ή κάποιο από τα updates στα Windows 2003 Server (Framework ή SP2), αλλά και τα δύο σύμφωνα με τα παραπάνω μπορούν να απορριφθούν.

    Μπορεί κάποιος να βοηθήσει?

  •  23-03-2007, 19:45 26946 σε απάντηση της 26920

    Απ: Πρόβλημα με ASP.NET Application από XP Pro σε 2003 Server

    Πιστεύω ότι το πρόβλημα δεν είναι στο compile του assembly. Ο χρήστης που τρέχει το assembly από default στα Windows XP (ASP.NET) και στον Windows Server 2003 (Network Service), είναι διαφορετικό.

    Μήπως το πρόβλημά σου έχει να κάνει με δικαιώματα ή με το trust που τρέχει το site στον Windows Server 2003;

    Έχεις δοκιμάσει να βάλεις το debug=true στο web.config στο Windows Server 2003, να πάρεις το λάθος μέσα από το IIS και να δεις σε ποια γραμμή σκάει και όχι από το Application log;

     

    George J.


    George J. Capnias: Χειροπρακτικός Υπολογιστών, Ύψιστος Γκουράρχης της Κουμπουτερολογίας
    w: capnias.org, t: @gcapnias, l: gr.linkedin.com/in/gcapnias
    dotNETZone.gr News
  •  23-03-2007, 21:34 26951 σε απάντηση της 26946

    Απ: Πρόβλημα με ASP.NET Application από XP Pro σε 2003 Server

    Γιώργο,

    το πρόβλημα είναι οτι το error είναι από τα unhadled (Common Language Runtime Debugging Services: Application has generated an exception that could not be handled) και δεν εμφανίζεται με αυτό τον τρόπο. Έγινε δοκιμή πρίν να έμφανίσω το error στο site.

    Το συγκεκριμένο error από οτι έχω βρεί στο Internet είναι αρκετά συχνό, αλλά κανένας δεν δίνει συγκεκριμένη λύση. Οι προτάσεις που κυριαρχούν είναι

    1. Να τρέξει ένα εργαλείο το Regmon και να βρεί όλα τα registry keys στα οποία δεν έχει δικαιώματα ο χρήστης NETWORK SERVISE και να αλλάξουν τα δικαιώματα σε κάθε ένα από τα Registry Keys. (Microsoft: http://support.microsoft.com/kb/885654)

    2. Να φτιάξω ανεξάρτητο error handling ενσωματώνοντας τα unhadled errors (κάπου έχω σημειώσεις του Μάνου για αυτό)  

    Αλλά ακόμη και άν κάνω τα παραπάνω υποψιάζομαι οτι αλλού πρέπει να είναι το πρόβλημα. Γιατί στον ίδιο Windows 2003 Server κάνω τις δοκιμές με δύο αντίγραφα του Web Application ένα με το παλαιό .dll και ένα με το καινούργιο.

    Πώς γίνεται το ένα .dll στην ίδια δήλωση μεταβλητής να βγάζει error και το άλλο όχι, όταν τρέχουν πλάι-πλάι?

    Θα είχα σίγουρα την λύση άν ο παλαιός υπολογιστης δεν είχε παραδώσει το πνεύμα. Απλά θα έκανα παράλληλα τις δοκιμές.

    Ο κώδικας είναι copy - paste από τους παλαιούς δίσκους. Πολύ λίγες γραμμές κώδικα έχουν προστεθεί οι οποίες δεν είναι μέσα στην κλάση και την δήλωσή της, από την οποία προέρχεται το unhandled error. Υπάρχει περίπτωση από το Copy-Paste να έχει χαρακτηριστεί το Assembly σαν unsafe ??? Υπάρχει περίπτωση να έχει σχέση με το οτι το VS.NET 2002 στο τέλος της εγκατάστασης δεν έγινε register γιατί η σελίδα για το registration δεν υπάρχει πιά στην Microsoft ??? Υπάρχει περίπτωση να επιρρεάζεται το compilation από τον C++ Compiler του VS 6 το οποίο είναι και αυτό εγκατεστημένο στον ίδιο υπολογιστή με το VS.NET 2002 ??? (Όλα τα τελευταία ερωτήματα αφορούν τον υπολογιστή από τον οποίο γίνεται το compilation)

    Σωτήρης Παπαϊωάννου

  •  24-03-2007, 15:33 26991 σε απάντηση της 26951

    Απ: Πρόβλημα με ASP.NET Application από XP Pro σε 2003 Server

    Τελικά το πρόβλημα λύθηκε.

    Έχει σχέση με το caching και το πως αποθηκεύει την System.Drawing.Color Class (Serialization & ...).

    Για να περιγραφεί καλύτερα η λύση και τι πρέπει να αποφεύγει κανείς όταν δουλεύει με τα παραπάνω περιγράφεται η αρχική δομή και οι αλλαγές που έγιναν.

    Αρχικά υπήρχε μια μεγάλη δομή (structure) από δεδομένα η οποία περιείχε και ένα μεγάλο μέρος από Colors (System.Drawing.Color Class) η οποία έπερνε τιμές από την βάση δεδομένων, και αποθηκεύονταν (caching) στην μνήμη για κάποια λεπτά της ώρας. Στην πορεία της ζωής της εφαρμογής οι ανάγκες για Colors αυξάνονταν. Και εμφανίστηκε το πρόβλημα στον Windows 2003 Server.

    Οι αλλαγές οι οποίες έγιναν είναι οτι παρέμειναν όλα στην δομή (structure) των δεδομένων όπως είχαν με μόνη διαφορά οτι αντικαταστάθηκε το Color (System.Drawing.Color Class ) στην δομή των δεδομένων με τον αντίστοιχο Integer (Color.ToARGB()). Η εφαρμογή τρέχει κανονικά.

    Άρα το πρόβλημα συμπερασματικά εστιάζεται (και διαφοροποιεί τα default settings στα Windows XP Professional σε σχέση με τον Windows 2003 Server) σε ένα ή περισσότερα από τα παρακάτω.

    1. Maximum Caching Size per Application (δεν έχει σχέση με το Total Caching γιατί τρέχουν στον Server πολλές εφαρμογές οι οποίες αποθηκεύουν δεδομένα και δεν υπήρχε ποτέ πρόβλημα). Από πού ορίζεται στην Registry το Maximum Caching Size per Application δεν βρέθηκε.

    2. Το Serialization της System.Drawing.Color Class για αποθήκευση στην cache χρειάζεται περισσότερη μνήμη από τον αντίστοιχο Integer του χρώματος (ή υπάρχει bag στον τρόπο και την ποσότητα χρωμάτων που μπορούν να αποθηκευτούν - μάλλον απίθανο γιατί τρέχει το ίδιο framework και στα δύο μηχανήματα).

    3. Το παράξενο είναι οτι στο Runtime τό πρόβλημα εμφανίζονταν σε Class η οποία έκανε export, μέσω properties, άλλες ανεξάρτητες δομές (structures).

    Δεν ξέρω αν θα σας φανούν χρήσιμα τα παραπάνω.

    Γιώργο ευχαριστώ για την βοήθεια.

     

    Σωτήρης Παπαϊωάννου

     

     

     

Προβολή Τροφοδοσίας RSS με μορφή XML
Με χρήση του Community Server (Commercial Edition), από την Telligent Systems