none
lentezza al primo accesso a un metodo RRS feed

  • Domanda

  • Salve a tutti!

    Ho un web service WCF Framework 4 che espone un banalissimo metodo per l'autenticazione in BasicHttpBinding

    Niente di speciale:

        [ServiceContract]
        public interface IAutorizedUser
        {
            [OperationContract]
            bool GetAuthentication(string UserName, string Password);
        }

    il problema è che quando chiamo quel metodo da un computer remoto, ho un'attesa anche di 20 secondi la prima volta. Non si tratta del codice interno al metodo, anche se lo commento completamente ho lo stesso l'attesa. Dalla seconda volta in poi il metodo viene richiamato velocemente.

    Su quel server ho una pagina html di test e questa viene raggiunta rapidamente da computer remoto.

    Se richiamo il metodo dal server ove risiede il web service non ho problemi. Con gli altri computer remoti che risiedono nella rete dell'ufficio il problema si manifesta sempre, con l'unica eccezione di un altro server, in cui l'attesa è limitata a 5 secondi circa.

    Mi rendo conto che i termini del problema sono molto generici, ma istintivamente sono portato a pensare che l'inghippo possa risiedere in qualche settaggio del web service. Che ne pensate? Potreste aiutarmi?

    Pileggi

    • Modificato pileggi mercoledì 22 agosto 2012 07:38
    martedì 21 agosto 2012 17:25

Risposte

  • diciamo che, se vai in basic senza https non c'è alcun certificato la cui revoca possa essere controllata, altrimenti è un motivo valido

    mi viene in mente più un problema di caricamento del pool in memoria... considera che la prima chiamata costringe IIS a tirare su l'applicazione (il servizio) e compilarla

    Antonio Esposito

    Ciao Antonio,

    allora, ho trovato il colpevole: useDefaultWebProxy="true" tra le proprietà del binding.

    Mi sarebbe piaciuto far si che il client acquisisca la corretta impostazione dal service ma pare che non sia possibile - non in modo semplice, almeno:

    http://social.msdn.microsoft.com/Forums/it/wcf/thread/00630074-4950-44a0-8f31-5e46ffe578db

    Pileggi




    • Contrassegnato come risposta pileggi martedì 4 settembre 2012 14:46
    • Modificato pileggi martedì 4 settembre 2012 14:50
    lunedì 3 settembre 2012 09:15

Tutte le risposte

  • Ciao,

    forse può dipendere dalle verifiche della Certificate Revocation List;

    prova a guardare qui WCF service startup too slow? Have you thought to CRL check?

    C'è anche chi suggerisce di inserire nel file hosts la seguente riga :

    127.0.0.1 clr.microsoft.com

    HTH


    volevamo cambiare il mondo! ...peccato che abbiamo perso lo scontrino sspintux

    mercoledì 22 agosto 2012 09:10
  • Ciao,

    forse può dipendere dalle verifiche della Certificate Revocation List;

    prova a guardare qui WCF service startup too slow? Have you thought to CRL check?

    C'è anche chi suggerisce di inserire nel file hosts la seguente riga :

    127.0.0.1 clr.microsoft.com

    HTH


    volevamo cambiare il mondo! ...peccato che abbiamo perso lo scontrino sspintux

    Grazie Luigi,

    per ora non posso perderci altro tempo ho fatto una prova superficiale ma non ho ottenuto miglioramenti, tra qualche settimana dovrò rimetterci le mani e allora approfondirò i tuoi suggerimenti.

    In quell'occasione verrò ad aggiornare questo thread.

    Ciao e grazie ancora!

    Pileggi

    mercoledì 22 agosto 2012 14:46
  • ciao

    è impossibile dare 1 risposta certa

    diciamo che, se vai in basic senza https non c'è alcun certificato la cui revoca possa essere controllata, altrimenti è un motivo valido

    mi viene in mente più un problema di caricamento del pool in memoria... considera che la prima chiamata costringe IIS a tirare su l'applicazione (il servizio) e compilarla

    considera anche che non esiste qualcosa di meno sicuro che creare un servizio di autenticazione in chiaro come con il BasicHttpBinding se non ci metti almeno SSL ed un sistema di autenticazione vero...

    forse cerchi di fare un sistema di autenticazione federata, ma esiste già e ti consiglio di valutarla (http://msdn.microsoft.com/en-us/security/aa570351.aspx)

    a presto


    Antonio Esposito [MCT, MCPD, MCTS, MCP]
    dotnetlombardia.org | blog | web | @tonyexpo
    Italy
     

    venerdì 24 agosto 2012 18:14
  • ciao

    è impossibile dare 1 risposta certa

    diciamo che, se vai in basic senza https non c'è alcun certificato la cui revoca possa essere controllata, altrimenti è un motivo valido

    mi viene in mente più un problema di caricamento del pool in memoria... considera che la prima chiamata costringe IIS a tirare su l'applicazione (il servizio) e compilarla

    considera anche che non esiste qualcosa di meno sicuro che creare un servizio di autenticazione in chiaro come con il BasicHttpBinding se non ci metti almeno SSL ed un sistema di autenticazione vero...

    forse cerchi di fare un sistema di autenticazione federata, ma esiste già e ti consiglio di valutarla (http://msdn.microsoft.com/en-us/security/aa570351.aspx)

    a presto

    Antonio Esposito [MCT, MCPD, MCTS, MCP]
    dotnetlombardia.org | blog | web | @tonyexpo

    Grazie Antonio,

    confermo, si tratta di basicHttpBinding. Indipendentemente dal fatto che la funzione l'ho chiamata GetAuthentication adesso mi interessa risolvere il problema di performance.

    Ti ringrazio per la dritta sul pool in memoria. Credo che comincerò da lì.

    Saluti,

    Pileggi

    giovedì 30 agosto 2012 15:22
  • diciamo che, se vai in basic senza https non c'è alcun certificato la cui revoca possa essere controllata, altrimenti è un motivo valido

    mi viene in mente più un problema di caricamento del pool in memoria... considera che la prima chiamata costringe IIS a tirare su l'applicazione (il servizio) e compilarla

    Antonio Esposito

    Ciao Antonio,

    allora, ho trovato il colpevole: useDefaultWebProxy="true" tra le proprietà del binding.

    Mi sarebbe piaciuto far si che il client acquisisca la corretta impostazione dal service ma pare che non sia possibile - non in modo semplice, almeno:

    http://social.msdn.microsoft.com/Forums/it/wcf/thread/00630074-4950-44a0-8f31-5e46ffe578db

    Pileggi




    • Contrassegnato come risposta pileggi martedì 4 settembre 2012 14:46
    • Modificato pileggi martedì 4 settembre 2012 14:50
    lunedì 3 settembre 2012 09:15