9

Ho un DotNetNuke site e oggi un cliente ha chiamato e ha detto che non funzionava su IE 10. In particolare i collegamenti di accesso e registro non funzionavano, ma lo fanno in modalità di compatibilità. Ho dato un'occhiata alla nostra macchina Windows 8 di test e ho visto che non funzionava perché __doPostBack non era definito. Ho cercato una correzione per le ultime 6 ore e quello che sono stato in grado di trovare è che apparentemente l'agente utente IE10 è coperto nel file ie.browser e che dovrei installare this hotfix e riavviare il server. Non ha funzionato. Non ho notato alcuna modifica, anche se penso che il nuovo file ie.browser dovrebbe corrispondere al nuovo agente utente.__doPostBack non è definito sul sito Web DotNetNuke per IE 10

Quali altri passaggi posso intraprendere per risolvere il problema? Nota: il server esegue .NET 3.5 con Service Pack 1 su Windows Server 2003. Sul sito è in esecuzione DotNetNuke 05.06.02. Ogni suggerimento sarà molto apprezzato.

+0

se per qualsiasi motivo si ha la directory 'App_Browsers' sul progetto, e hanno lì il' ie.browser', e non cambiare la situazione inoltre, ma si applica solo la patch, che aggiorna il globale 'ie.browser', il tuo progetto è sovrascritto e non consente alla patch di risolvere il problema. Il problema qui è risolto con una modifica delle definizioni del browser. – Aristos

+0

@Aristos non c'era un file ie.browser nella cartella App_Browsers dei miei siti. – nick

+0

Ok, allora per me, scarica questo file 'http: // www.hanselman.com/blog/content/binary/App_BrowsersUpdate.zip' e confrontare se è possibile ie.browser con il tuo su globale per vedere se sono uguali. – Aristos

risposta

9
+0

Ho provato a installare l'aggiornamento rapido e ad aggiungere il file ie.browser alla cartella App_Browsers, riavviando il server dopo ciascuno di essi. Né risolto il problema. – nick

+0

Hai applicato gli hotfix per tutte le versioni di .net? 2.0 e 4.0? Penso che dotnetnuke 5 e 6 sia impostato su .Net 2.0 –

+0

Ho installato l'aggiornamento rapido 2.0. Non ho installato. 4.0 sul server. L'ultimo che ho è 3.5 sp1 – nick

4

Sul mio sito di produzione Ho provato un paio di cose e che non ha funzionato.

Ho installato l'aggiornamento rapido e riavviato - non va bene

ho copiato il file ie.browser aggiornato - non va bene

ho provato la modifica del default.browser, l'ie.browser, e Mozilla. file del browser per abilitare javascript per tutto, non va bene.

Una cosa che ho fatto che finalmente ha reso il lavoro (e questo dovrebbe funzionare per tutto) è nella funzione InitializePage del file Default.aspx.vb, ho aggiunto questa linea per l'inizio della subroutine

Page.ClientTarget = "uplevel" 

Questo dovrebbe (da quello che ho capito) tratta TUTTI i browser come se fossero in grado di gestire javascript e cookie e tutte le altre cose di cui abbiamo bisogno. Penso che sia una scommessa abbastanza sicura.

+1

Grazie! Questo ha fatto il trucco per me. Ho una classe BasePage che eredita da System.Web.UI.Page, che a sua volta è la super classe per le classi di pagine in un sito. Ho aggiunto il gestore di eventi di pre-caricamento a BasePage e il problema ie10 è andato via. In questo modo (C#): protected void Page_PreLoad (object mittente, EventArgs e) {this.ClientTarget = "uplevel"; } – Ciniod

3

C'è un'altra configurazione che se esiste in web.config sostituisce correzioni proposte di Scott Hanselman:

<browserCaps> 

ASP.NET funzionalità del browser sniffer potrebbe essere configurato in 3 modi (ignora l'altro):

  1. Machine wide in <windir>\Microsoft.NET\Framework\<ver>\CONFIG\Browsers
  2. Site only by using .browser files in App_Browsers folder
  3. Site only by using <browserCaps> Element in web.config

per IE10 aggiungere il seguente caso in <browserCaps> <case "Mozilla .. MSIE ..>:

<case match="\d{2,}" with="${version}"> 
    frames=true 
    tables=true 
    cookies=true 
    backgroundsounds=true 
    vbscript=true 
    javascript=true 
    javaapplets=true 
    activexcontrols=true 
    tagwriter=System.Web.UI.HtmlTextWriter 
    ecmascriptversion=3.0 
    msdomversion=${major}${minor} 
    w3cdomversion=1.0 
    css1=true 
    css2=true 
    xml=true 

    <filter with="${letters}" match="^b"> 
    beta=true 
    </filter> 
    <filter with="${extra}" match="Crawler"> 
    crawler=true 
    </filter> 
</case> 
+0

Anton, Santo schifo, non hai idea di quanto mi ci sia voluto per vedere che sul mio progetto li stavano definendo nella configurazione del web ... Grazie mille! – teewuane

+0

Ci sono stato anche :) Sono contento di aver potuto aiutare. –