Fetstil Fetstil Kursiv Understrykning linje färgläggning tabellverk Punktlista Nummerlista Vänster Centrerat högerställt Utfyllt Länk Bild htmlmode
  • Forum & Blog
    • Forum - översikt
      • .Net
        • asp.net generellt
        • c#
        • vb.net
        • f#
        • silverlight
        • microsoft surface
        • visual studio .net
      • databaser
        • sql-server
        • databaser
        • access
        • mysql
      • mjukvara klient
        • datorer och komponenter
        • nätverk, lan/wan
        • operativsystem
        • programvaror
        • säkerhet, inställningar
        • windows server
        • allmänt
        • crystal reports
        • exchange/outlook
        • microsoft office
      • mjukvara server
        • active directory
        • biztalk
        • exchange
        • linux
        • sharepoint
        • webbservers
        • sql server
      • appar (win/mobil)
      • programspråk
        • c++
        • delphi
        • java
        • quick basic
        • visual basic
      • scripting
        • asp 3.0
        • flash actionscript
        • html css
        • javascript
        • php
        • regular expresssion
        • xml
      • spel och grafik
        • DirectX
        • Spel och grafik
      • ledning
        • Arkitektur
        • Systemutveckling
        • krav och test
        • projektledning
        • ledningsfrågor
      • vb-sektioner
        • activeX
        • windows api
        • elektronik
        • internet
        • komponenter
        • nätverk
        • operativsystem
      • övriga forum
        • arbete karriär
        • erbjuda uppdrag och tjänster
        • juridiska frågor
        • köp och sälj
        • matematik och fysik
        • intern information
        • skrivklåda
        • webb-operatörer
    • Posta inlägg i forumet
    • Chatta med andra
  • Konto
    • Medlemssida
    • Byta lösenord
    • Bli bonsumedlem
    • iMail
  • Material
    • Tips & tricks
    • Artiklar
    • Programarkiv
  • JOBB
  • Student
    • Studentlicenser
  • KONTAKT
    • Om pellesoft
    • Grundare
    • Kontakta oss
    • Annonsering
    • Partners
    • Felanmälan
  • Logga in

Hem / Forum översikt / inlägg

Posta nytt inlägg


Felhantering + Global.asax + Sessioner

Postades av 2007-06-14 16:10:27 - Janne Aho, i forum asp.net generellt, Tråden har 5 Kommentarer och lästs av 1314 personer

Försöker implementera en global felhantering i min lilla webbapplikation. Men får ett felmeddelande så fort jag den försöker anropa sessionen:
<code>
Sessionstillståndet är inte tillgängligt i den här kontexten.
</code>

Kan det vara så att sessionen dör så fort användaren får ett fel, tex. skriver in en felaktig länk?

Sparar följande data i en session (med sessionskonstanter -> strängar)
-Felmeddelande (errormsg)
-Aktuella sidan (lastpage)

Application_Error i global.asax

      
            try
            {              
               Session[SessionConstants.ERRORMSG] = "Ingen information finns tillgängligt.";
               Session[SessionConstants.LASTPAGE] = Request.CurrentExecutionFilePath;

                Exception lastError = Server.GetLastError();

                if (lastError != null)
                {
                    lastError = lastError.GetBaseException();
                    Session[SessionConstants.ERRORMSG] = Convert.ToString(lastError.Message);
                    
                }
            }
            catch
            {
                Session[SessionConstants.ERRORMSG] = "Ingen information finns tillgängligt";
                Session[SessionConstants.LASTPAGE] = String.Empty;
            }
            finally
            {               
                Server.ClearError();
                Server.Transfer("~/error.aspx");
            }


Sen ska jag i error.aspx hämta felet och den aktuella sidan från sessionen och presenterar felet.
error.aspx
lblError.Text = Session[SessionConstants.ERRORMSG].ToString();


Har följande i web.config
    <pages buffer ="true" enableSessionState="true" />  
    <customErrors mode="RemoteOnly" defaultRedirect="~/error.aspx" />


Har även testat:
System.Web.HttpContext.Current.Session[SessionConstants.ERRORMSG]

Men med samma resultat...


Svara

Sv: Felhantering + Global.asax + Sessioner

Postades av 2007-06-14 16:29:30 - Thomas Vanhaniemi

Det är nog bara så att Sessioner inte är tillgängliga i Application_Error. Det är nämligen så att sessioner enbart finns i ett begränsat antal events.
Till exempel finns det inte i BeginRequest heller.


Svara

Sv:Felhantering + Global.asax + Sessioner

Postades av 2007-06-14 22:50:55 - Janne Aho

Efter en del experimenterande så gav jag upp : )
Fick baka en kaka och lägga in felmeddelandet i den för att sedan plocka upp det igen i min error.aspx...

Låter inlägget vara öppen då det skulle vara intressant och veta ifall det går att lösa med sessioner.


Svara

Sv: Felhantering + Global.asax + Sessioner

Postades av 2007-06-15 09:30:12 - Fredrik Normén

Att Session inte finns i olika events beror på när session finns tillgänligt och när den inte finns.. Tex BeginRequest är så tidigt att ingen Session har skapats.

När Application_Error anropas, så har session dött vid det tillfället (oftast, beror lite på).
Men i ditt fall kan du istället skriva:

protected void Application_Error(Object sender, EventArgs e)
{
HttpContext ctx = HttpContext.Current;

Exception exception = ctx.Server.GetLastError ();

string errorInfo =
"<br>Offending URL: " + ctx.Request.Url.ToString () +
"<br>Source: " + exception.Source +
"<br>Message: " + exception.Message +
"<br>Stack trace: " + exception.StackTrace;

ctx.Server.ClearError ();
}

ClearError will stoppa exception att bubbla upp..

Mvh Fredrik Normén
ASP.Net MVP - Cornerstone
Blog: http://fredrik.nsquared2.com


Svara

Sv:Felhantering + Global.asax + Sessioner

Postades av 2007-06-15 12:21:41 - Janne Aho

Men är inte

System.Web.HttpContext.Current.Session[SessionConstants.ERRORMSG]


det samma som
HttpContext ctx = HttpContext.Current;
ctx.Session[SessionConstants.ERRORMSG]



Svara

Sv: Felhantering + Global.asax + Sessioner

Postades av 2007-06-15 12:39:36 - Thomas Vanhaniemi

Ja, men du kommer inte åt sessioner på något sätt eftersom de inte är tillgängliga mera i Application_Error...


Svara

Nyligen

  • 09:09 Vill du köpa medicinska tester?
  • 12:47 Vem beviljar assistansen – kommune
  • 14:17 Någon med erfarenhet av hemstädnin
  • 14:14 Bör man använda sig av en båtförme
  • 14:12 Finns det någon intressant hundblo
  • 14:25 Tips på verktyg för att skapa QR-k
  • 14:23 Tips på verktyg för att skapa QR-k
  • 20:52 Fungerer innskuddsbonuser egentlig

Sidor

  • Hem
  • Bli bonusmedlem
  • Läs artiklar
  • Chatta med andra
  • Sök och erbjud jobb
  • Kontakta oss
  • Studentlicenser
  • Skriv en artikel

Statistik

Antal besökare:
Antal medlemmar:
Antal inlägg:
Online:
På chatten:
4 569 169
27 953
271 705
690
0

Kontakta oss

Frågor runt konsultation, rådgivning, uppdrag, rekrytering, annonsering och övriga ärenden. Ring: 0730-88 22 24 | pelle@pellesoft.se

© 1986-2013 PelleSoft AB. Last Build 4.1.7169.18070 (2019-08-18 10:02:21) 4.0.30319.42000
  • Om
  • Kontakta
  • Regler
  • Cookies