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

 

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

Show Source File and Line Numbers of an exception on production IIS

Îåêßíçóå áðü ôï ìÝëïò pmatsinopoulos. Τελευταία δημοσίευση από το μέλος cap στις 17-12-2008, 13:19. Υπάρχουν 3 απαντήσεις.
Ταξινόμηση Δημοσιεύσεων: Προηγούμενο Επόμενο
  •  16-12-2008, 22:45 46937

    Show Source File and Line Numbers of an exception on production IIS

    Καλησπέρα,

    Προσπαθώ να βρω τρόπο να εμφανίσω τη γραμμή του πηγαίου κώδικα στην οποία γίνεται throw ένα exception. Ωστόσο, ο IIS στον οποίο ρίχνω/publish το web site μου, αρνείται πεισματικά να το κάνει. Μου τυπώνει μόνο τη μέθοδο (και όλες τις μεθόδους που έχουν κληθεί/stack trace) χωρίς όμως τον ακριβή αριθμό της γραμμής του πηγαίου κώδικα. Σημειώνω ότι όταν τρέχω το web site μέσα από το Visual Studio, (από την επιλογή view in browser) οι αριθμοί των γραμμών στις οποίες έσκασε το exception έγινε κανονικά. Γιατί δεν συμβαίνει το ίδιο όταν τρέχω την εφαρμογή μου στον παραγωγικό IIS? Πρέπει να κάνω κάποια ρύθμιση στον IIS ώστε η .StackTrace να επιστρέφει και τους αριθμούς γραμμών;

    Σας ευχαριστώ εκ των προτέρων.

     

  •  17-12-2008, 10:51 46939 σε απάντηση της 46937

    Απ: Show Source File and Line Numbers of an exception on production IIS

    έχεις χρησιμοποιήσει, όλες τις απαραίτητες μεθόδους που υπάρχουν στο StackTrace object από το System.Diagnostics namespace.

    Το πρόβλημα, είναι ότι δεν ξέρεις πως να το κάνεις? ή το κάνεις σωστά αλλά δεν σου βγαίνει το αποτέλεσμα?


    Νικόλαος Καντζέλης
    BSc, MSc, MCAS, MCPD, MCITP, MCTS,MCP, MCT
    http://www.nksolutions.gr
    http://dotnetstories.wordpress.com
    http://weblogs.asp.net/dotnetstories
    http://forum.dotnetnuke.gr
  •  17-12-2008, 11:20 46940 σε απάντηση της 46937

    Απ: Show Source File and Line Numbers of an exception on production IIS

    Γενικά, η εφαρμογή σου σε Production περιβάλλον πρέπει να έχει πρόσβαση στο portable database αρχείο(.pdb)-http://msdn.microsoft.com/en-us/library/ms241903.aspx-, που δημιουργείται όταν ο κώδικας γίνεται compile. λογικά θα δημιουργείται αυτό το αρχείο και θα πρέπει να το ανεβάσεις στο Production enviroment.

     

    για δες στο (VS 2008) project properties->Build->Advanced Build Settings/Debug Info. Θα πρεπει να το τσεκάρεις από εκεί για το release version.


    Νικόλαος Καντζέλης
    BSc, MSc, MCAS, MCPD, MCITP, MCTS,MCP, MCT
    http://www.nksolutions.gr
    http://dotnetstories.wordpress.com
    http://weblogs.asp.net/dotnetstories
    http://forum.dotnetnuke.gr
  •  17-12-2008, 13:19 46944 σε απάντηση της 46940

    Απ: Show Source File and Line Numbers of an exception on production IIS

    Ας διευρύνω λιγάκι το post του Νίκου, ως εξής:

    - Για να σου βγάλει line numbers ένα application όταν συμβαίνει ένα exception, αυτό θα πρέπει να έχει γίνει build σε debug mode. Ητοι, όπως λέει και ο Νίκος, να συνοδεύεται από τα .pdb αρχεία που συμβουλεύεται για να σου δείξει, μεταξύ άλλων, και τα line numbers.

    Υπάρχουν δύο build modes: Release και Debug.

    Στην τοπική σου εγκατάσταση, κάνεις build σε debug (ακόμα και αν δεν το έχεις αντιληφθεί). Αν όμως κάνεις publish σε web server και δεν έχεις line numbers στα exceptions, μυρίζει Release mode. Επιπλέον, δεν μυρίζει VS2008 αλλά VS2005. Για κοίτα λίγο εδώ: http://odetocode.com/blogs/scott/archive/2005/11/15/2464.aspx

    Και για να γίνω πιό συγκεκριμένος, το VS2005 κατά το publish "πετάει" το site σου στο server σε release mode εξ'ορισμού. Κοίτα τι λέει ο Scott Allen για το publish σε VS2005:

    When you are ready to deploy, you can publish the web site. The Publish command (Build -> Publish) will precompile a web application and place the results into a directory of your choosing. You can also publish to an IIS or FTP location. When you select the Publish command you’ll see a dialog box to choose a destination, and options for strong naming, fixed naming, etc. These options map directly to switches for the command line aspnet_compiler tool (see my article for more details). The aspnet_compiler tool also provides a switch to produce debugging symbols, but this option is not available from the Publish dialog. Publish will always precompile a release build without debugging symbols.

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

     


    Σωτήρης Φιλιππίδης

    DotSee Web Services

    View Sotiris Filippidis's profile on LinkedIn

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