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

 

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

Πρόβλημα με Windows Server και Cookies

Îåêßíçóå áðü ôï ìÝëïò teDeV. Τελευταία δημοσίευση από το μέλος teDeV στις 01-06-2009, 21:10. Υπάρχουν 7 απαντήσεις.
Ταξινόμηση Δημοσιεύσεων: Προηγούμενο Επόμενο
  •  29-05-2009, 10:32 51104

    Πρόβλημα με Windows Server και Cookies

    Καλημέρα σας,

    προσπαθώ να φτιάξω ένα basket με cookies. στο μηχάνημά μου δουλεύει μια χαρά. μόλις όμως πήγα να το ανεβάσω στο Server μου (windows server 2008), όταν πάει να μπει σε κώδικα που διαβάζει cookies, μου βγάζει πρόβλημα object reference not set to an instance......

    αυτό το πράγμα δεν μπορεί να ισχύει. ορίστε ο κώδικας


      Try
                If myLog.id = "" Then
                    cookieStr = Request.Cookies("Cart")("basket")
                Else
                    cookieStr = Request.Cookies("Cart" & myLog.id)("basket")
                End If
            Catch ex As Exception
                cookieStr = Request.Cookies("Cart")("basket")     <-------- ΣΕ ΑΥΤΗ ΤΗ ΓΡΑΜΜΗ ΒΑΡΑΕΙ
            End Try

    το cookieStr είναι ένα String οπότε δεν χρειάζεται NEW, και το request.cookies θα έπρεπε κανονικά αν δεν βρεί τίποτα να μου επιστρέψει ένα ("") ή δεν ισχύει αυτό? τώρα που το σκέφτομαι ίσως να το διαβάζει σαν object. να κοιτάει ότι δεν έχει δημιουργηθεί ακόμα και να με χαλάει.

    Γιατί τότε όμως στο pc Μου παίζει κανονικά? Θα δοκιμάσω μέσα στο catch να βάλω ένα create και θα δείξει.



    To 2007 tha ta poume stin agora :)
  •  29-05-2009, 13:25 51113 σε απάντηση της 51104

    Απ: Πρόβλημα με Windows Server και Cookies

    Έτσι όπως βλέπω τον κώδικα δεν πρέπει να βαράει στη γραμμή που δίνεις αλλά να έχει ήδη βαρέσει στην 3η γραμμή, η οποία είναι ακριβώς ίδια.

    Όσον αφορά το exception, είναι αναμενόμενο αν δεν έχει οριστεί το "Cart". Η Request.Cookies("Cart") σου επιστρέφει ένα αντικείμενο HttpCookie. Αν αυτό δεν υπάρχει θα σου επιστρέψει Nothing. Η ("basket") είναι αυτή η οποία σου επιστρέφει το string με το όνομα "basket" που περιέχεται στο cookie "Cart". Αν το Cart δεν υπάρχει, ουσιαστικά προσπαθείς να εκτελέσεις μία μέθοδο σε ένα αντικείμενο Nothing. Γι αυτό και συμβαίνει το Exception.

    Θα πρέπει να κάνεις ένα έλεγχο ότι υπάρχει το cookie πριν ζητήσεις την τιμή του  basket, π.χ.

            Dim cartKey As String
            If myLog.id = "" Then
                cartKey = "Cart"
            Else
                cartKey = "Cart" & myLog.id
            End If
            Dim cartCookie As HttpCookie = Request.Cookies(cartKey)
            Dim cookieStr As String
            If cartCookie IsNot Nothing Then
                cookieStr = cartCookie("basket")
            End If

    Σημειωτέον, ξεχωρίζω τη δημιουργία του cookie key από την ανάκτηση του, για να γίνει ξεκάθαρος ο κώδικας.


    Παναγιώτης Καναβός, Freelancer
    Twitter: http://www.twitter.com/pkanavos
  •  29-05-2009, 16:49 51127 σε απάντηση της 51113

    Απ: Πρόβλημα με Windows Server και Cookies

    Παναγιώτη επίτηδες τον έχω βάλει το κώδικα έτσι γύφτικα γιατί υπάρχουν αρκετές περιπτώσεις που το myLog μπορεί να είναι nothing. οπότε χωρίς το try έπρεπε να βάλω και άλλου ελέγχους και βαριόμουν :D

    ναι βαράει στην 3η αλλά μετά βαράει πάλι στο catch που δεν ισχύει το try. θα το διορθώσω. ευχαριστώ για την απάντησή σου πάντως.

    To 2007 tha ta poume stin agora :)
  •  29-05-2009, 16:55 51128 σε απάντηση της 51127

    Απ: Πρόβλημα με Windows Server και Cookies

    Δηλαδή, έχασες τόσο χρόνο, έγραψες σχεδόν τον ίδιο κώδικα και εξασφάλισες μία μεγάλη καθυστέρηση οποτεδήποτε χτυπάει το exception επειδή βαριόσουν να κάνεις ένα ακόμη έλεγχο για το myLog ????

    Τσκ, τσκ, τσκ Sad


    Παναγιώτης Καναβός, Freelancer
    Twitter: http://www.twitter.com/pkanavos
  •  29-05-2009, 17:18 51129 σε απάντηση της 51128

    Απ: Πρόβλημα με Windows Server και Cookies

    είπα "γύφτικο" Big Smile

    το γυρίζω πάλι να δοκιμάσω με αυτό που λες.

    το δοκίμασα και με αυτό το τρόπο και βαράει! ακριβώς στο σημείο που βλέπει αν είναι nothing η όχι. το οποίο το έχω βάλει και μέσα σε try catch αλλά αυτό επιμένει. Είναι λές και όταν πάει να χρησιμοποιήσει cookies ο server σαλτάρει.

    μήπως ο iis 7 έχει κάπου καμιά ρύθμιση που πρέπει να ανοίξω? δεν μπορεί να γίνεται αυτό!!



    To 2007 tha ta poume stin agora :)
  •  01-06-2009, 18:03 51193 σε απάντηση της 51129

    Απ: Πρόβλημα με Windows Server και Cookies

    μπορείτε να μου πείτε αν βλέπετε κάτι λάθος εδώ?

     If Request.Cookies("Cart" & shopID)("basket") Is Nothing Or Request.Cookies("Cart" & shopID)("basket") = "" Then
                        Dim oCookie As HttpCookie = New HttpCookie("Cart" & shopID)
                        oCookie.Values.Add("basket", id & "^" & qty & "|")
                        oCookie.Values.Add("coupon", CouponID)
                        oCookie.Expires = DateTime.Now.AddHours(48)
                        Response.Cookies.Add(oCookie)
                        Exit Sub
                    End If


    χτυπάει όταν πάει να διαβάσει το basket is nothing. όντως είναι nothing, αλλά δεν θα έπρεπε να μπει στο if?

    με πηγαίνει στο catch του try μου.



    οκ ο μόνος τρόπος για να μου παίξει όπως θέλω είναι έτσι

      Dim shopID As String
                    If myLog.id = "" Then
                        shopID = ""
                    Else
                        shopID = myLog.id
                    End If
                    Dim cartCookie As HttpCookie = Request.Cookies("Cart" & shopID)

                    'If Request.Cookies("Cart" & shopID)("basket") Is Nothing Or Request.Cookies("Cart" & shopID)("basket") = "" Then
                    If cartCookie Is Nothing Then
                        Dim oCookie As HttpCookie = New HttpCookie("Cart" & shopID)
                        oCookie.Values.Add("basket", id & "^" & qty & "|")
                        oCookie.Values.Add("coupon", CouponID)
                        oCookie.Expires = DateTime.Now.AddHours(48)
                        Response.Cookies.Add(oCookie)
                        Exit Sub
                    End If

    To 2007 tha ta poume stin agora :)
  •  01-06-2009, 18:18 51194 σε απάντηση της 51193

    Απ: Πρόβλημα με Windows Server και Cookies

    Τί χτυπάει? Αν το Cart είναι κενό πάλι θα επιστρέψει Nothing και το ("basket") θα χτυπήσει. Το Request.Cookies("Cart" & shopID)("basket) είναι ισοδύναμο με Nothing("basket") αν δεν υπάρχει το συγκεκριμένο Cart. Ή μήπως σου κτυπάει κάτι άλλο? Αν δεν αναφέρεις τί κτυπάει πως θα μπορέσει να βοηθήσει κανείς?

    Γιατί δεν συμαζεύεις τον κώδικα τώρα που είδες πως μπορείς να το κάνεις?


    Παναγιώτης Καναβός, Freelancer
    Twitter: http://www.twitter.com/pkanavos
  •  01-06-2009, 21:10 51200 σε απάντηση της 51194

    Απ: Πρόβλημα με Windows Server και Cookies

    Παναγιώτη το διόρθωσα, το πρόβλημα ήταν ότι πήγαινε μετά το OR και διάβαζε αν το Basket είχε τιμή ενώ ήταν nothing. πιο πάνω έχω βάλει και την διόρθωση και είναι και μαζεμένο.

    Σε ευχαριστώ πάντως για τις απαντήσεις σου.

    Μία ερώτηση που θα την βρώ σε λίγο μπροστά μου. Μιας και δεν έχει στην ASP με τα textbox key_down, πως μπορώ να πω ότι όταν πατάνε σε κάποιο συγκεκριμένο textbox , το Enter να πατάει ένα αντίστοιχο κουμπί που θα του πω εγώ.

    Ξέρω πως να πω στην φόρμα να έχει κάποιο button σαν main action, αλλά σε συγκεκριμένα textbox πρέπει να έχει άλλο




    άκυρο το βρήκα....... :)

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