webForumDet fria alternativet

Visa annan sida vid hög belastning

.NET

16 svar · 514 visningar · startad av greggan

Medlem sedan jan. 2004678 inlägg
Frågan#1

tjena tjena

jag fick en liten idé efter att ha läst på swesecure.com att jag vill ha en sida som kommer upp om det är hög belastning på sidan för tillfället.

hur kan jag skapa en sådan?

Medlem sedan maj 20012 812 inlägg
#2

Hur tänker du mäta högbelastning då?

Medlem sedan nov. 20017 144 inlägg
#3

Tanke: Borde det inte gå att klocka sidornas laddningstid under en period och ex. använda application_start/session_start i global.asax för att göra en redirect om laddingstiden är för lång?

Medlem sedan jan. 2004678 inlägg
#4

jag har ingen aning om hur jag skulle kolla det.. det är därför jag frågar.. ;)
det jag vill veta är ungefär hur jag ska mäta om sidan är seg och på vilket sätt. på något sätt tiden det tar antar jag, men sen då?

om ni någon gång har varit inne på lunarstorm.se och sett att det kommer upp en sida lite då och då där det står att det är hög belastning eller liknande.. det är i den stilen jag menar.

Medlem sedan sep. 20011 914 inlägg
#5

I din Global.asax lägger du:

public class Global : System.Web.HttpApplication
{
   private System.ComponentModel.IContainer components = null;
   
   private DateTime _timer;
   public Global()
   {
      InitializeComponent();
   }	
		

   protected void Application_BeginRequest(Object sender, EventArgs e)
   {
      _timer = DateTime.Now;
   }

        
   protected void Global_PreRequestHandlerExecute(Object sender, EventArgs e)
   {
      TimeSpan ts = DateTime.Now - _timer;
      if(ts.TotalMilliseconds > 600)
         Server.Transfer("somepage.aspx");
   }

   private void InitializeComponent()
   {    
      this.components = new System.ComponentModel.Container();
      this.PreRequestHandlerExecute += new EventHandler(this.Global_PreRequestHandlerExecute);
   }
}

600 ändrar du till något värde som du anser vara lång laddingstid.
Sen kanske man kan använda något annat event än PreRequestHandlerExecute.

red//Tänkte lite fel första gången

Medlem sedan maj 20012 812 inlägg
#6

Hmm, det ser spännande ut Dino, har du testat det?

- M

Medlem sedan sep. 20011 914 inlägg
#7

Koden funkar, har dock inte testat det under belastning. Det är ju ett enkelt upplägg så om någon har tid att testa så kan de ju skriva hur det funkar.

Medlem sedan jan. 2004678 inlägg
#8

tackar.. men tyvärr får jag det inte att funka...

jag har ingen global.asax fil.. måste jag lägga in något speciellt i den eller kan jag bara lägga in din kod där?

Medlem sedan sep. 20011 914 inlägg
#9

Om du inte har någon global.asax så är det väl lite svårt att få det att fungera.
Skapa en fil, global.asax, och i dess code-behind fil, global.asax.cs, klistrar du in ovan kod plus att du lägger till namespacen (tror det är dessa som är standard):

using System;
using System.Collections;
using System.ComponentModel;
using System.Web;
using System.Web.SessionState;
using System.Diagnostics;
using System.Security.Principal;
using System.Text;
Medlem sedan jan. 2004678 inlägg
#10

fick det att fungera nu... la dit <script> tagarna.. men det verkar inte fungera helt... satte ner timeouten på 1 millisekund.. och sidan var seg som fan, men jag hamnade inte på nån annan sida.. =/

Medlem sedan jan. 2004678 inlägg
#11

men om jag lägger in koden i codebehind.. vad ska jag då lägga in i global.asax.. nu har jag blivit lite förvirrad... =/

Medlem sedan sep. 20011 914 inlägg
#12

Vilken miljö utvecklar du i?

Medlem sedan jan. 2004678 inlägg
#13

vad menas med miljö?

jag kodar i VB i ASP.NET

Medlem sedan maj 20012 812 inlägg
#14

med miljön menas säkert din utvecklingsmiljö, typ VisualStudio.NET

- M

Medlem sedan jan. 2004678 inlägg
#15

jag sitter i Dreamweaver...

Medlem sedan sep. 20011 914 inlägg
#16

I ditt fall så skall global.asax bara innehålla det inom script taggarna. Du behöver ingen global.asax.vb.

Medlem sedan jan. 2004678 inlägg
#17

så då gjorde jag rätt? men inget hände sen när jag skrev att timeout var 1 millisekund.. och sidan gick grymt segt. jag kom ändå rätt.

260 ms totalt · 4 externa anrop · v20260731065814-full.a51de22e
128 ms — deklarationer (db)
0 ms — hämta statistik (cache)
129 ms — hämta tråd, inlägg och bilagor (db)
126 ms — ändringar (db)