<?xml version="1.0" encoding="UTF-8" ?>
<?xml-stylesheet type="text/xsl" href="https://www.dotnetzone.gr:443/cs/utility/FeedStylesheets/rss.xsl" media="screen"?><rss version="2.0" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:slash="http://purl.org/rss/1.0/modules/slash/" xmlns:wfw="http://wellformedweb.org/CommentAPI/"><channel><title>ASP.NET WebForms</title><link>https://www.dotnetzone.gr:443/cs/forums/13/ShowForum.aspx</link><description>Θέματα για web εφαρμογές, σε ASP.NET WebForms</description><dc:language>el</dc:language><generator>CommunityServer 2.1 SP3 (Build: 20423.1)</generator><item><title>Απ: Ενημέρωση table μετά από κλείσιμο του IE</title><link>https://www.dotnetzone.gr:443/cs/forums/thread/13028.aspx</link><pubDate>Sat, 20 May 2006 05:18:26 GMT</pubDate><guid isPermaLink="false">2622095e-976c-431a-859e-16783ec7ecd7:13028</guid><dc:creator>deykas</dc:creator><slash:comments>0</slash:comments><comments>https://www.dotnetzone.gr:443/cs/forums/thread/13028.aspx</comments><wfw:commentRss>https://www.dotnetzone.gr:443/cs/forums/commentrss.aspx?SectionID=13&amp;PostID=13028</wfw:commentRss><description>&lt;P&gt;Το αρχικό μου πρόβλημα ήταν ότι ήθελα να ενημερώνω τον SQL Server με ένα online flag γιά κάθε χρήστη. Το πρόβλημα υπήρχε όταν κάποιος κλείνει τον ie. &lt;STRONG&gt;Τελικά εγκατέλειψα τη λύση της άμεσης ενημέρωσης της βάσης και κατέληξα στα εξής&lt;/STRONG&gt;:&lt;/P&gt;
&lt;P&gt;&lt;EM&gt;Sub Application_Start(ByVal sender As Object, ByVal e As EventArgs) &lt;BR&gt;Application("ActiveUsers") = 0 &lt;BR&gt;End Sub &lt;/EM&gt;&lt;/P&gt;
&lt;P&gt;&lt;EM&gt;Sub Session_Start(ByVal sender As Object, ByVal e As EventArgs) &lt;BR&gt;Session("Start") = Now &lt;BR&gt;Application.Lock() &lt;BR&gt;Application("ActiveUsers") = CInt(Application("ActiveUsers")) + 1 &lt;BR&gt;Application.UnLock() &lt;BR&gt;End Sub &lt;/EM&gt;&lt;/P&gt;
&lt;P&gt;&lt;EM&gt;Sub Session_End(ByVal sender As Object, ByVal e As EventArgs) &lt;BR&gt;Application.Lock() &lt;BR&gt;Application("ActiveUsers") = CInt(Application("ActiveUsers")) - 1 &lt;BR&gt;Application.UnLock() &lt;BR&gt;End Sub &lt;BR&gt;&lt;/EM&gt;&lt;/P&gt;
&lt;P&gt;Ο τρόπος αυτός και με timeout =1 δεν είναι ο πιο αξιόπιστος, αλλά τον χρησιμοποιώ. Πάντως δεν έχω προσέξει κάτι περίεργο με τη σύνδεση με το server λόγω του timeout. &lt;/P&gt;
&lt;P&gt;Έχετε να προτείνετε κάτι άλλο;&lt;/P&gt;
&lt;P&gt;Ευχαριστώ ...&lt;/P&gt;</description></item><item><title>Απ: Ενημέρωση table μετά από κλείσιμο του IE</title><link>https://www.dotnetzone.gr:443/cs/forums/thread/13022.aspx</link><pubDate>Sat, 20 May 2006 03:39:01 GMT</pubDate><guid isPermaLink="false">2622095e-976c-431a-859e-16783ec7ecd7:13022</guid><dc:creator>Mitsaras</dc:creator><slash:comments>0</slash:comments><comments>https://www.dotnetzone.gr:443/cs/forums/thread/13022.aspx</comments><wfw:commentRss>https://www.dotnetzone.gr:443/cs/forums/commentrss.aspx?SectionID=13&amp;PostID=13022</wfw:commentRss><description>Παράβλεψή μου, πέρασα απ' ευθείας στο παράδειγμα!</description></item><item><title>Απ: Ενημέρωση table μετά από κλείσιμο του IE</title><link>https://www.dotnetzone.gr:443/cs/forums/thread/13013.aspx</link><pubDate>Sat, 20 May 2006 02:46:25 GMT</pubDate><guid isPermaLink="false">2622095e-976c-431a-859e-16783ec7ecd7:13013</guid><dc:creator>Χρήστος Γεωργακόπουλος</dc:creator><slash:comments>0</slash:comments><comments>https://www.dotnetzone.gr:443/cs/forums/thread/13013.aspx</comments><wfw:commentRss>https://www.dotnetzone.gr:443/cs/forums/commentrss.aspx?SectionID=13&amp;PostID=13013</wfw:commentRss><description>Να το θέσουμε λιγό σωστότερα θεωρητικά: Αφορά τον χρόνο που δεν υπάρχει επικοινωνία με τον server χρησιμοποιώντας το ίδιο session id.</description></item><item><title>Απ: Ενημέρωση table μετά από κλείσιμο του IE</title><link>https://www.dotnetzone.gr:443/cs/forums/thread/13012.aspx</link><pubDate>Sat, 20 May 2006 02:22:08 GMT</pubDate><guid isPermaLink="false">2622095e-976c-431a-859e-16783ec7ecd7:13012</guid><dc:creator>Mitsaras</dc:creator><slash:comments>0</slash:comments><comments>https://www.dotnetzone.gr:443/cs/forums/thread/13012.aspx</comments><wfw:commentRss>https://www.dotnetzone.gr:443/cs/forums/commentrss.aspx?SectionID=13&amp;PostID=13012</wfw:commentRss><description>Παράδεγιμα:&lt;br /&gt;
&lt;br /&gt;
Αν εγώ φορτώσω τη σελίδα, και κάνω login, έχω ένα λεπτό για να κάνω οτιδήποτε. Αν περάσει αυτό το λεπτό και δεν κάνω refresh ή πατήσω κάποιο link ή γενικότερα δεν αλληλεπιδράσω με τη σελίδα, ο server με ξεχνάει (και πρέπει να ξανακάνω login).&lt;br /&gt;
&lt;br /&gt;
Γι' αυτό το λόγο η χρήση του timeout Στο 1 λεπτό, καθιστά προβληματική την πλοήγηση, και αυξάνει το φόρτο του server (ο οποίος πλέον αναλαμβάνει να δημιουργεί και να καταστρέφει sessions με πολλαπλάσια συχνότητα).</description></item><item><title>Απ: Ενημέρωση table μετά από κλείσιμο του IE</title><link>https://www.dotnetzone.gr:443/cs/forums/thread/13011.aspx</link><pubDate>Sat, 20 May 2006 02:15:35 GMT</pubDate><guid isPermaLink="false">2622095e-976c-431a-859e-16783ec7ecd7:13011</guid><dc:creator>deykas</dc:creator><slash:comments>0</slash:comments><comments>https://www.dotnetzone.gr:443/cs/forums/thread/13011.aspx</comments><wfw:commentRss>https://www.dotnetzone.gr:443/cs/forums/commentrss.aspx?SectionID=13&amp;PostID=13011</wfw:commentRss><description>&lt;P&gt;Ευχαριστώ για τις απαντήσεις.&lt;/P&gt;
&lt;P&gt;Τελικά, επέλεξα το session_end με timeout="1" για να γίνονται οι ενημερώσεις, οι οποίες δεν είναι κάτι πολύ σημαντικό για τη λειτουργία της εφαρμογής. &lt;/P&gt;
&lt;P&gt;&lt;STRONG&gt;Κάτι τελευταίο:&lt;/STRONG&gt;το timeout αφορά τον χρόνο που ένας χρήστης δεν αλληλεπιδρά με&amp;nbsp;τη σελίδα της εφαρμογής ή κάτι άλλο;&lt;/P&gt;
&lt;P&gt;Ευχαριστώ...&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;</description></item><item><title>Απ: Ενημέρωση table μετά από κλείσιμο του IE</title><link>https://www.dotnetzone.gr:443/cs/forums/thread/12918.aspx</link><pubDate>Thu, 18 May 2006 19:23:34 GMT</pubDate><guid isPermaLink="false">2622095e-976c-431a-859e-16783ec7ecd7:12918</guid><dc:creator>Χρήστος Γεωργακόπουλος</dc:creator><slash:comments>0</slash:comments><comments>https://www.dotnetzone.gr:443/cs/forums/thread/12918.aspx</comments><wfw:commentRss>https://www.dotnetzone.gr:443/cs/forums/commentrss.aspx?SectionID=13&amp;PostID=12918</wfw:commentRss><description>&lt;P&gt;Μάλλον έχει ηχώ εδώ μέσα... :-)&lt;/P&gt;
&lt;P&gt;Σε πρόλαβα Παναγιώτη...&lt;/P&gt;</description></item><item><title>Απ: Ενημέρωση table μετά από κλείσιμο του IE</title><link>https://www.dotnetzone.gr:443/cs/forums/thread/12900.aspx</link><pubDate>Thu, 18 May 2006 16:44:46 GMT</pubDate><guid isPermaLink="false">2622095e-976c-431a-859e-16783ec7ecd7:12900</guid><dc:creator>Παναγιώτης Καναβός</dc:creator><slash:comments>0</slash:comments><comments>https://www.dotnetzone.gr:443/cs/forums/thread/12900.aspx</comments><wfw:commentRss>https://www.dotnetzone.gr:443/cs/forums/commentrss.aspx?SectionID=13&amp;PostID=12900</wfw:commentRss><description>&lt;P&gt;Το μόνο σίγουρο είναι ότι το session_end θα εκτελεστεί όταν κάνει timeout το session. Ο χρόνος αυτός είναι συνήθως αρκετά λεπτά. Αν θες να γίνει η ενημέρωση γρηγορότερα θα πρέπει&amp;nbsp; να πιάσεις το close event στον Internet Explorer με javascript. Το τί θα κάνεις μετά ... μπορείς να ανοίξεις σε ένα νέο παράθυρο μια σελίδα .aspx η οποία θα κάνει τη δουλειά που θέλεις και μετά θα εμφανίσει ένα μηνυματάκι "Ευχαριστώ που φύγατε" ή κάτι παρόμοιο. Βέβαια, ένα popup blocker μπορεί να το χαλάσει αυτό. Μπορείς να χρησιμοποιήσεις XMLHTTP για να καλέσεις το server. Αλλά δεν ξέρω κατά πόσο είναι αυτό δυνατόν όταν ο browser κλείνει. &lt;/P&gt;
&lt;P&gt;Μία άλλη λύση είναι να φτιάξεις ένα κρυφό frame/iframe το οποίο θα ανανεώνεται συχνά και θα χρησιμοποιείται σαν "keep-alive" για το session του χρήστη. Όταν δηλαδή καλείται η σελίδα του frame θα σημειώνει κάπου στο server την ώρα της ανανέωσης. Όποιος client δεν έχει ανανεωθεί για x λεπτά θεωρείται νεκρό οπότε καλούμε τον κώδικα για να γεμίσουμε τον πίνακα. Ή μπορείς να χρησιμοποιήσεις το XMLHTTP για να κάνεις το ίδιο.&lt;/P&gt;</description></item><item><title>Απ: Ενημέρωση table μετά από κλείσιμο του IE</title><link>https://www.dotnetzone.gr:443/cs/forums/thread/12899.aspx</link><pubDate>Thu, 18 May 2006 16:43:38 GMT</pubDate><guid isPermaLink="false">2622095e-976c-431a-859e-16783ec7ecd7:12899</guid><dc:creator>Χρήστος Γεωργακόπουλος</dc:creator><slash:comments>0</slash:comments><comments>https://www.dotnetzone.gr:443/cs/forums/thread/12899.aspx</comments><wfw:commentRss>https://www.dotnetzone.gr:443/cs/forums/commentrss.aspx?SectionID=13&amp;PostID=12899</wfw:commentRss><description>&lt;P&gt;Το Session_End &lt;U&gt;σίγουρα&lt;/U&gt; δεν θα σηκωθεί όταν κλείσει ο IE, ο server δεν έχει την παραμικρή ιδέα αν ο IE είναι κλειστός ή ανοικτός. Το event θα σηκωθεί &lt;U&gt;μόνο&lt;/U&gt; όταν γίνει expire το session.&lt;/P&gt;
&lt;P&gt;Φαντάζομαι ότι θα μπορούσες με javascript στη σελίδα σου να κάνεις ένα AJAX style post στο κλείσιμο του IE. Πάντως ακόμα και έτσι να το κάνεις, τί γίνεται στην περίπτωση που ο χρήστης δεν κλείνει τον IE, αλλά απλά κάνει navigate σε άλλο site; Θα στείλεις notification στον server ότι έφυγε ο χρήστης; Και αν μετά από 5 δευτερόλεπτα πατήσει το back του IE; Το θεωρείς ότι έχει φύγει ή όχι; Πιστεύω ότι δεν θα πρέπει να βασίζεσαι στο state του IE, αλλά αποκλειστικά και μόνο στο state του session.&lt;/P&gt;</description></item><item><title>Απ: Ενημέρωση table μετά από κλείσιμο του IE</title><link>https://www.dotnetzone.gr:443/cs/forums/thread/12898.aspx</link><pubDate>Thu, 18 May 2006 16:39:15 GMT</pubDate><guid isPermaLink="false">2622095e-976c-431a-859e-16783ec7ecd7:12898</guid><dc:creator>zeon</dc:creator><slash:comments>0</slash:comments><comments>https://www.dotnetzone.gr:443/cs/forums/thread/12898.aspx</comments><wfw:commentRss>https://www.dotnetzone.gr:443/cs/forums/commentrss.aspx?SectionID=13&amp;PostID=12898</wfw:commentRss><description>Για κοίτα και &lt;a href="http://aspnet.4guysfromrolla.com/articles/101304-1.aspx"&gt;εδώ&lt;/a&gt; χωρίς να μαι σίγουρος ότι σου κάνει. Κάτι παρόμοιο έχει φτιάξει αυτός.&lt;br&gt;</description></item><item><title>Απ: Ενημέρωση table μετά από κλείσιμο του IE</title><link>https://www.dotnetzone.gr:443/cs/forums/thread/12897.aspx</link><pubDate>Thu, 18 May 2006 16:37:09 GMT</pubDate><guid isPermaLink="false">2622095e-976c-431a-859e-16783ec7ecd7:12897</guid><dc:creator>Νατάσα Μανουσοπούλου</dc:creator><slash:comments>0</slash:comments><comments>https://www.dotnetzone.gr:443/cs/forums/thread/12897.aspx</comments><wfw:commentRss>https://www.dotnetzone.gr:443/cs/forums/commentrss.aspx?SectionID=13&amp;PostID=12897</wfw:commentRss><description>&lt;P&gt;Αν θέλεις για τις δοκιμές να κάνει expire το session νωρίτερα, μπορείς να το αλλάξεις από το Web.config σου:&lt;/P&gt;&lt;FONT size=2&gt;
&lt;P&gt;&lt;/FONT&gt;&lt;FONT color=#0000ff size=2&gt;&amp;lt;&lt;/FONT&gt;&lt;FONT color=#800000 size=2&gt;sessionState&lt;/FONT&gt;&lt;FONT color=#ff00ff size=2&gt; &lt;BR&gt;&lt;/FONT&gt;&lt;FONT color=#ff0000 size=2&gt;mode&lt;/FONT&gt;&lt;FONT color=#0000ff size=2&gt;="InProc"&lt;BR&gt;&lt;/FONT&gt;&lt;FONT color=#ff0000 size=2&gt;stateConnectionString&lt;/FONT&gt;&lt;FONT color=#0000ff size=2&gt;="tcpip=127.0.0.1:42424"&lt;BR&gt;&lt;/FONT&gt;&lt;FONT color=#ff0000 size=2&gt;sqlConnectionString&lt;/FONT&gt;&lt;FONT color=#0000ff size=2&gt;="data source=127.0.0.1;Trusted_Connection=yes"&lt;BR&gt;&lt;/FONT&gt;&lt;FONT color=#ff0000 size=2&gt;cookieless&lt;/FONT&gt;&lt;FONT color=#0000ff size=2&gt;="false"&lt;/FONT&gt;&lt;FONT color=#ff00ff size=2&gt; &lt;BR&gt;&lt;/FONT&gt;&lt;STRONG&gt;&lt;FONT color=#ff0000 size=2&gt;timeout&lt;/FONT&gt;&lt;FONT color=#0000ff size=2&gt;="20"&lt;/FONT&gt;&lt;/STRONG&gt;&lt;FONT color=#ff00ff size=2&gt; &lt;BR&gt;&lt;/FONT&gt;&lt;FONT color=#0000ff size=2&gt;/&amp;gt;&lt;/FONT&gt;&lt;/P&gt;
&lt;P&gt;&lt;FONT color=#0000ff size=2&gt;&lt;FONT color=#000000&gt;&lt;/FONT&gt;&amp;nbsp;&lt;/P&gt;&lt;/FONT&gt;</description></item><item><title>Απ: Ενημέρωση table μετά από κλείσιμο του IE</title><link>https://www.dotnetzone.gr:443/cs/forums/thread/12893.aspx</link><pubDate>Thu, 18 May 2006 16:26:55 GMT</pubDate><guid isPermaLink="false">2622095e-976c-431a-859e-16783ec7ecd7:12893</guid><dc:creator>kkara</dc:creator><slash:comments>0</slash:comments><comments>https://www.dotnetzone.gr:443/cs/forums/thread/12893.aspx</comments><wfw:commentRss>https://www.dotnetzone.gr:443/cs/forums/commentrss.aspx?SectionID=13&amp;PostID=12893</wfw:commentRss><description>Κανονικά με το Session_End θα έπρεπε να κάνεις τη δουλειά σου. Να σημειώσω ότι το Session_End ενδέχεται να μην καλείται αμέσως μόλις κλείσει ο Explorer αλλά μόλις περάσει ο χρόνος στον οποίο κλείνει ένα Session (συνήθως ένα 20λεπτο).&lt;br /&gt;
&lt;br /&gt;
Αν έχεις δοκιμάσει να περιμένεις τόσο για να δεις αν θα κληθεί το event τότε δεν μου έρχεται αυτή τη στιγμή κάτι άλλο που μπορείς να κάνεις και να μην είναι τρελή χακιά...</description></item><item><title>Ενημέρωση table μετά από κλείσιμο του IE</title><link>https://www.dotnetzone.gr:443/cs/forums/thread/12886.aspx</link><pubDate>Thu, 18 May 2006 05:38:36 GMT</pubDate><guid isPermaLink="false">2622095e-976c-431a-859e-16783ec7ecd7:12886</guid><dc:creator>deykas</dc:creator><slash:comments>0</slash:comments><comments>https://www.dotnetzone.gr:443/cs/forums/thread/12886.aspx</comments><wfw:commentRss>https://www.dotnetzone.gr:443/cs/forums/commentrss.aspx?SectionID=13&amp;PostID=12886</wfw:commentRss><description>&lt;P&gt;Επανέρχομαι στο forum για το θέμα ενημέρωσης SQL server table μετά από κλείσιμο του Internet Explorer:&lt;/P&gt;
&lt;P&gt;Δοκίμασα με το session_end αλλά δεν μπορώ να πιάσω την περίπτωση.&lt;/P&gt;
&lt;P&gt;Γνωρίζει κανείς πως μπορώ να το κάνω;&lt;/P&gt;
&lt;P&gt;Ευχαριστώ εκ των προτέρων...&lt;/P&gt;</description></item></channel></rss>