none
Configurazione Server 2008 R2 e "__doPostBack" RRS feed

  • Domanda

  • Forse può sembrare un argomento OT, ma non lo è perchè la mia è una domanda sulla configurazione di Windows Server 2008 R2, o almeno credo.

    Il problema è questo: quando pubblico il sito web che ho realizzato su server online che ha windows server 2008 installato e IIS 7.5, per alcuni browser la funzione javascript "__doPostBack" non funziona più. Mentre in locale, dove ho sempre IIS 7.5 ma windows 7 tutto funziona bene e su tutti i browser.

    Quindi la mia domanda è secca: che voi sappiate, esiste qualche parametro di configurazione sul server 2008 che possa in qualche modo avere a che fare con javascript ed in particolare con la funzione per il postback?

    Grazie A Tutti Per Ogni Aiuto Possibile.

    Igor


    Italy


    • Modificato igorbaITALY venerdì 31 maggio 2013 05:02 correzione ortografica
    venerdì 31 maggio 2013 05:01

Risposte

  • io sviluppo parecchie soluzioni di vario genere e le pubblico su web server IIS a partire da svariate versioni fa ad oggi (cloud compreso dove ci sono server win2k8R2) ma non ho mai riscontrato il problema.

    anzi, se talvolta qualcosa non funziona, è sempre qualcosa che è sfuggito allo sviluppatore

    ma siccome non trascuriamo alcuna indicazione

    potresti essere un po' più preciso magari con qualche esempio, qualche pagina di test publbicata e qualche riga di codice ?


    Edoardo Benussi
    Microsoft MVP - Directory Services
    edo[at]mvps[dot]org

    • Contrassegnato come risposta Anca Popa martedì 25 giugno 2013 15:00
    venerdì 31 maggio 2013 09:18
    Moderatore
  • La mia domanda invece è diversa da quella di Edo, prima di spaccarci la testa, il server online l'hai messo su tu od è una cosa offerta e preimpostata tipo server virtuale\dedicato di un provider? perchè in tanti casi il motivo di questi malfunzionamenti è dato proprio dai server che ti danno che non sono totalmente aperti per motivi di politica del provider di servizi...

    A.

    • Contrassegnato come risposta Anca Popa martedì 25 giugno 2013 15:01
    venerdì 31 maggio 2013 11:47
    Moderatore

Tutte le risposte

  • io sviluppo parecchie soluzioni di vario genere e le pubblico su web server IIS a partire da svariate versioni fa ad oggi (cloud compreso dove ci sono server win2k8R2) ma non ho mai riscontrato il problema.

    anzi, se talvolta qualcosa non funziona, è sempre qualcosa che è sfuggito allo sviluppatore

    ma siccome non trascuriamo alcuna indicazione

    potresti essere un po' più preciso magari con qualche esempio, qualche pagina di test publbicata e qualche riga di codice ?


    Edoardo Benussi
    Microsoft MVP - Directory Services
    edo[at]mvps[dot]org

    • Contrassegnato come risposta Anca Popa martedì 25 giugno 2013 15:00
    venerdì 31 maggio 2013 09:18
    Moderatore
  • La mia domanda invece è diversa da quella di Edo, prima di spaccarci la testa, il server online l'hai messo su tu od è una cosa offerta e preimpostata tipo server virtuale\dedicato di un provider? perchè in tanti casi il motivo di questi malfunzionamenti è dato proprio dai server che ti danno che non sono totalmente aperti per motivi di politica del provider di servizi...

    A.

    • Contrassegnato come risposta Anca Popa martedì 25 giugno 2013 15:01
    venerdì 31 maggio 2013 11:47
    Moderatore
  • Buonasera a tutti e grazie per le vostre risposte.

    Cercherò di spegarvi il più possibile:

    @Alessandro: il Server è una macchina virtuale messa a disposizione del provider, precaricato con Windows Server 2008 R2, e io che sono il classico "sistemista della domenica" lo gestisco da solo, come web server e db server. Ho imparato in locale 4 cose in croce su IIS e da lì mi muovo poco. Però non ho fatto niente di stratosferico, la classica impostazione di un web (definito come applicazione dentro il sito di default) e relativo server FTP. Sia il cloud server che quello che ho in locale sono Windows Server 2008 R2 installati su macchine virtuali. Ecco perchè volevo indagare se c'era qualche settaggio "nascosto" tra i vari "roles" del server che devo checkare. Capisco che javascript è un linguaggio lato client e che al massimo la differenza la poteva fare il browser utilizzato, ma quando con lo stesso browser e con lo stesso codice in locale funziona e in remoto no... allora mi sorge il dubbio che ci sia qualcosa sul server che interviene, essendo comunque il PostBack un comando che rimanda al server.

    @Edoardo: vi posto un po' di codice così magari arginiamo il problema al caso specifico, però sottolineo (scusate se mi ripeto) che lo stesso identico codice FUNZIONA in locale e NON sul server. Sulla pagina del sito ho messo un controllo AJAX .NET per gestire un "Collapsible Panel" ed ho utilizzato del codice javascript per mantenere "in memoria" l'apertura o la chiusura del panel al post back della pagina, il codice javascript aggiorna un hidden field lato html, poi lato codice memorizzo il valore in una variabile di sessione che permane al postback. Per ogni click sui vari link della pagina, faccio quindi scatenare la funzione "__doPostBack()" in modo che avvenga il postback della pagina e quindi le variabili di sessione vengano aggiornate (scusate la sintesi, spero di essere stato chiaro).

    html

    <script type="text/javascript" language="javascript">
    
        // GESTIONE APERTURA/CHIUSURA MENU
        //
        function TitleClick1() {
    
            var objExtender = $find("<%=cpeMenuLeft1.ClientID%>");
            var h1 = document.getElementById("<%=hiddenHomePageMenu01.ClientID%>");
            if (objExtender.get_Collapsed()) { h1.value = "false"; } else { h1.value = "true"; }
    
            // alert('h1: ' + h1.value);
    
        };
    
    
    </script>
    
    <cc1:CollapsiblePanelExtender ID="cpeMenuLeft1" 
                                    runat="server" 
                                    CollapseControlID="pnlHeadMenu1" 
                                    TargetControlID="pnlContentMenu1"
                                    ExpandControlID="pnlHeadMenu1" 
                                    Collapsed="True"
                                    Enabled="True"
                                    EnableViewState="true"
                                    SuppressPostBack="false">                                        
    </cc1:CollapsiblePanelExtender>
    <asp:Panel ID="pnlHeadMenu1" runat="server" onclick="TitleClick1()">
        <div class="CollapsHeaderMenu">
            <asp:Image ID="Image2" runat="server" ImageUrl="~/Immagini/MenuLeft/MenuHome.png" 
                Height="15px" meta:resourcekey="Image2Resource1" />
            <a href="#"><asp:Label ID="lblMenu01" runat="server" 
                Text="un prodotto tre soluzioni" meta:resourcekey="lblMenu01Resource1"></asp:Label></a>
        </div>
    </asp:Panel>
    <asp:Panel ID="pnlContentMenu1" runat="server" CssClass="CollapsContentMenu">
        <div class="menu_verticale">
            <ul>
                <li><a href="" id="hrefMenu01_01" runat="server" onclick="javascript:__doPostBack(&#39;hrefMenu01_01&#39;,&#39;&#39;);"><asp:Label ID="lblMenu01_01" runat="server" Text="menu 01" 
                        meta:resourcekey="lblMenu01_01Resource1"></asp:Label></a></li>
                <li><a href="" id="hrefMenu01_02" runat="server" onclick="javascript:__doPostBack(&#39;hrefMenu01_02&#39;,&#39;&#39;);"><asp:Label ID="lblMenu01_02" runat="server" Text="menu 01" 
                        meta:resourcekey="lblMenu01_02Resource1"></asp:Label></a></li>
                <li><a href="" id="hrefMenu01_03" runat="server" onclick="javascript:__doPostBack(&#39;hrefMenu01_03&#39;,&#39;&#39;);"><asp:Label ID="lblMenu01_03" runat="server" Text="menu 03" 
                        meta:resourcekey="lblMenu01_03Resource1"></asp:Label></a></li>
            </ul>    
        </div>
    </asp:Panel>
    <asp:HiddenField ID="hiddenHomePageMenu01" runat="server" />

    code

    //
    // Gestione Apertura Menu01
    //
    if (string.IsNullOrEmpty(hiddenHomePageMenu01.Value )) // ((hiddenHomePageMenu01.Value == string.Empty ))
    {
        if ((((Session["hiddenHomePageMenu01"]) != null)))
        {
            cpeMenuLeft1.ClientState = (string) Session["hiddenHomePageMenu01"];
        }
    }
    else
    {
        Session["hiddenHomePageMenu01"] = hiddenHomePageMenu01.Value;
        cpeMenuLeft1.ClientState = hiddenHomePageMenu01.Value;
    }

    Inizialmente pensavo potesse dipendere dalla gestione della Session, ma ho fatto prove su prove con pagine di test e pare che funzionino bene (ho anche utilizzato le diverse modalità di gestione della Session messe a disposizione dal .NET, ma niente). Da ignorante sistemista, non mi rimane che pensare a qualche "inghippo" sul server. Ma non escludo chiaramente altri aspetti da poter indagare.

    Se serve altro sono a disposizione.

    Grazie mille per il supporto.

    Igor


    Italy


    • Modificato igorbaITALY venerdì 31 maggio 2013 13:32 correzione
    venerdì 31 maggio 2013 13:30
  • Secondo me il problema sta proprio nel precaricato, magari ha impostazioni diverse a livello sicurezza iis delle tue o sta a SP ed aggionamenti diversi dai tuoi e di qui il tuo problema...però Edo ne sa a pacchi più di me e può concordare\discordare con la mia ipotesi.

    A.

    venerdì 31 maggio 2013 13:40
    Moderatore
  • aspectemus edo ...   :-)

    Italy

    venerdì 31 maggio 2013 13:42
  • mi servirebbe una paginetta di test completa per capire il funzionamento.

    intanto faccio qualche domandina in più:

    salvare lo stato del pannello collassabile ti serve perché dopo il postback della pagina il pannello si presenti nella stessa situazione ante postback, immagino, giusto ?

    'sto oggetto Ajax dove l'hai preso ?

    hai provato ad usare l'getto da solo senza altro codice limitandoti a memorizzare lo stato in un hiddenfield e verificare che funzioni ?

    se assegni il valore all'hiddenfiled perché usi anche una Session?


    Edoardo Benussi
    Microsoft MVP - Directory Services
    edo[at]mvps[dot]org


    venerdì 31 maggio 2013 15:29
    Moderatore
  • salvare lo stato del pannello collassabile ti serve perché dopo il postback della pagina il pannello si presenti nella stessa situazione ante postback, immagino, giusto ?

    si esatto.

    'sto oggetto Ajax dove l'hai preso ?

    è un oggetto dell'AjaxControlToolKit, l'insieme dei tools ajax che microsoft mette a disposizione.

    hai provato ad usare l'getto da solo senza altro codice limitandoti a memorizzare lo stato in un hiddenfield e verificare che funzioni ?

    ... mumble... mi sa di no!

    se assegni il valore all'hiddenfiled perché usi anche una Session?

    perchè se lo lascio solo nell'hidden al postback ritorna al valore iniziale.


    Italy

    venerdì 31 maggio 2013 16:11
  • puoi mandarmi all'indirizzo mail in firma una paginetta di test che io possa provare ?

    Edoardo Benussi
    Microsoft MVP - Directory Services
    edo[at]mvps[dot]org

    lunedì 3 giugno 2013 13:43
    Moderatore
  • Scusa il ritardo!

    Ti ho mandato la mail con del materiale allegato.

    Resto a disposizione e.... GRAZIE !!!


    Italy

    mercoledì 5 giugno 2013 16:36