Visualizzazione dei risultati da 1 a 10 su 10
  1. #1

    errori web app c# "dal nulla"

    Salve a tutti =D

    Non sono riuscito a trovare un titolo più adatto per questa discussione..eheh

    Io ho fatto una web app in asp.net/c#...durante la fase di test si è testa e ritestata, ora che è in produzione iniziano ad arrivare notifiche di errore strane.

    E li è tutto normale direte voi!!

    Il problema è che a volte l'applicazione da errori che prima non c'erano, mi spiego meglio con un esempio:

    1- io provo a fare un percorso all'interno del sito, vado nella home, mi loggo, clicco sulla combo box di una form, faccio il submit con lo specifico bottone, mi ritorna il risultato corretto.

    e fin li funziona...però succede ogni tanto che un utente rifaccia lo STESSO identico percorso che ho descritto io e senza spiegarmelo la web app genera eccezioni e mi inoltra tali errori, dopo un po' l'utente riprova lo stesso percorso (e tengo a specificare, proprio lo stesso, con gli stessi dati!!) e l'errore non si verifica più!

    l'errore che di solito si verifica è un nullpointerexception...come se per le troppe interrogazioni alla pagina impediscano la corretta gestione della memoria...

    è mai capitato a voi un problema del genere?

  2. #2
    Quante persone utilizzano contemporaneamente questa app?
    Chi sbaglia, apprende meglio di chi non ha mai commesso errori.
    DOT.NET Addicted since 2006 (My Blog)

  3. #3

    come fare?

    Sinceramente non so come fare.

    Credo siano abbastanza tanti...

    Il sito è su un IIS6 o 7 (ora mi sfugge) come posso fare per quantificare gli accessi?

    C'è un modo automatico e devo contarli a "mano" in un db?

  4. #4
    il problema di cui parli tu non è negli accessi, ti ho fatto questa domanda perchè delle volte succede questo:
    l'app viene sviluppata senza un minimo di progettazione e in locale "FUNZIONA ALLA GRANDE";
    poi và in esercizio dove l'utenza è molta ed il software non è in grado di rispondere a tutte le richieste.

    Ciò significa che all'interno della tua applicazione c'è una porizione di codice che non è scritta cosi bene da poter supportare bene connessioni multiple.

    pensate, prima di scrivere codice pensate...
    Chi sbaglia, apprende meglio di chi non ha mai commesso errori.
    DOT.NET Addicted since 2006 (My Blog)

  5. #5
    Moderatore di ASP.net L'avatar di djciko
    Registrato dal
    Nov 2002
    Messaggi
    6,887
    si puo' parlare di progettazione della scalabilità di un'applicazione

    La scalabilità , invece, è la capacità dell'applicazione di supportare un numero crescente di utenti , mantenedo le performance costanti, attraverso un piano prefissato e pianificato di incremento delle risorse hardware (hw) e software (sw) necessarie. In altre parole, per avere un'applicazione scalabile dobbiamo avere nella nostra soluzione un'architettura che ci consenta di sfruttare le eventuali aggiunte di hardware. Nessun limite deve essere posto in questo tipo operazione necessaria per ottenere la possibilità di sostenere un carico crescente di utenti, sia nella possibilità di incrementare le risorse sia nella possibilità di sfruttarle in modo più vicino possibile alla linearità e comunque in modo pianificabile.
    (da qui)

  6. #6
    Utente di HTML.it L'avatar di GabbOne
    Registrato dal
    Mar 2006
    Messaggi
    577

    Re: errori web app c# "dal nulla"

    Originariamente inviato da Tregua87
    .....
    l'errore che di solito si verifica è un nullpointerexception...come se per le troppe interrogazioni alla pagina impediscano la corretta gestione della memoria...
    ....
    il nullpointerexception per quello che mi hanno insegnato dervia strettamente da un errore di programmazione (piu o meno banale). Penso che se il codice sia corretto ed il problema sia legato alla quantità di risorse disponbili il tipo di errore che otterresti sarebbe ben diverso da quello che effettivamente ottieni.

    Anche il fatto di aver fatto testing in modo piu o meno pianificato non garantisce il fatto di aver prodotto un codice infallibile perche spesso risulta impossibile testare tutti gli n percorsi (ma anche gli n possibili dati locali , globali, appl, sessioni etc) che l'esecuzione dell'applicativo potrebbe effettuare.

    Alla luce di questo , e dal titolo della discussione =) , che lascia intendere il fatto di non aver capito qualè il punto preciso in cui si verificano gli errori, ti consiglio di tener traccia in un file di log di tutte le eccezzioni che si verificano all'interno dell'applicazione in modo da restringere il campo attorno al baco. Sicuramente RoBYCoNTe e djciko che sono molto piu esperti di me delle piattaforme microsoft possono aiutarti a trovare quale sia il modo piu elegante per realizzare questo tipo di tracking.

    Un saluto

  7. #7

    si è una buona idea

    Grazie per la dritta, io non sono esperto di asp.net, so le cose di base ma questo progetto è più grande di quelli affrontati finora..

    Sarei grato se mi poteste dare qualche linea guida da seguire, almeno per cercare di capire dove andare a cercare il problema..

    Anticipo che il sito non è opera totalmente mia, c'è stato un passaggio di mano.

    C'è un sistema di notifica che invia lo stack di chiamata e lo sato della sessione...potrebbe essere utile?
    Io non capisco comunque dove sia l'errore...

    Se avete il tempo e o la voglia di aiutarmi ve ne sarei grato altrimenti posso capire lo scazzamento che si ha nel vendere un niubbo...

  8. #8

    ps.

    PS: gli errori sollevati non sono quasi mai gli stessi, qualcuno è un NullPointer, ma molti altri sono del tipo:

    'System.Web.HttpUnhandledException'

    che essendo una cosa generica non è molto semplice cercarla..

  9. #9
    Prima di tutto ho letto una cosa:
    C'è un sistema di notifica che invia lo stack di chiamata e lo stato della sessione...potrebbe essere utile?
    Invia tramite cosa? Un indirizzo email? Questa condizione è valida nel tuo ambiente di sviluppo (configurato da te), ma sei sicuro che poi possa essere applicata nell'ambiente di esercizio? Cioè se il problema fosse proprio nella logica di invio degli errori che TENTA di inviare un messaggio (email deduco) senza riuscirci?

    Cmq potresti impostare nel web.config la property <customErrors mode="On" />
    in questo modo apparirebbero a video gli errori "CONCRETI" con trace e quant'altro, poi se hai la possibilità di incollare qui un esempio di quanto accade possiamo darti una mano in più.

    "Inserire un Log" all'interno di un'app web, secondo il mio parere, è come pretendere che un ciclista gareggi portando dietro di se (su un secondo sellino) un'altra persona, ovviamente penso siano chiare le conseguenze, il ciclista ad un certo punto non ce la farà più. Il log è un sistema che và ben architettato, solitamente se la tua applicazione utilizza StoredProcedure (che sarebbero una cosa buona e giusta ) puoi implementare questo meccanismo direttamente al loro interno, su file te lo sconsiglio, oppure come dice Gabbone puoi intervenire ma creando un architettura ad uso e consumo tuo (tool per lo sviluppatore) di Log che utilizzi solo in quel frangente di Codice è solo PER RISOLVERE l'errore. Subito dopo devi provvedere ad eliminarla per "aumentare notevolmente" le performance (ricorda che stai lavorando ad un app web con un pooling di utenti di cui non conosci la grandezza, accedere ad un file di log, quindi ad uno stream su hd, non è un'operazione da sottovalutare in contesto web-application).
    Chi sbaglia, apprende meglio di chi non ha mai commesso errori.
    DOT.NET Addicted since 2006 (My Blog)

  10. #10
    Citazione: C'è un sistema di notifica che invia lo stack di chiamata e lo stato della sessione...potrebbe essere utile?
    Notifia vai mail...mi ero dimenticato di specificarlo...

    Exception Message: Exception of type 'System.Web.HttpUnhandledException' was thrown.
    Exception Source: System.Web
    Exception TargetSite FullyQualifiedName: C:\WINDOWS\assembly\GAC_32\System.Web\2.0.0.0__b03 f5f7f11d50a3a\System.Web.dll
    Exception TargetSite Name: HandleError
    Stacktrace: at System.Number.ParseInt32(String s, NumberStyles style, NumberFormatInfo info) at System.Convert.ToInt32(String value) at spedizioni_elenco.bindData(Boolean useCookie) at spedizioni_elenco.btnInvia_Click(Object sender, EventArgs e) at System.Web.UI.WebControls.Button.OnClick(EventArgs e) at System.Web.UI.WebControls.Button.RaisePostBackEven t(String eventArgument) at System.Web.UI.WebControls.Button.System.Web.UI.IPo stBackEventHandler.RaisePostBackEvent(String eventArgument) at System.Web.UI.Page.RaisePostBackEvent(IPostBackEve ntHandler sourceControl, String eventArgument) at System.Web.UI.Page.RaisePostBackEvent(NameValueCol lection postData) at System.Web.UI.Page.ProcessRequestMain(Boolean includeStagesBeforeAsyncPoint, Boolean includeStagesAfterAsyncPoint)
    Error Message: Value was either too large or too small for an Int32.
    Querystring:
    reset: >> true
    questo è un esempio di errore che mi salta fuori...io ho provato a dargli un occhio, l'error message dice che c'era un valore più grande o più piccolo di un Int32...ho dato un occhio al codice della pagina ma non ce ne eseco, posto anche quello?

    più che altro non so come leggere lo stacktrace...sapere quallo mi sarebbe utile..

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Powered by vBulletin® Version 4.2.1
Copyright © 2025 vBulletin Solutions, Inc. All rights reserved.