Caratteri stranieri di modalità integrata di IIS

Ok, quindi questo ci ha fatto impazzire. Abbiamo un'applicazione integrata in ASP.NET 4.0 in esecuzione su Windows Server 2012 e IIS8.

Alcune pagine del nostro sito sono tradotte in più lingue, in particolare giapponesi e cinesi sono quelli problematici.

Se mettiamo il pool di applicazioni in modalità integrata, alcuni caratteri non vengono visualizzati correttamente. Siamo accolti con pochissimi punti interrogativi.

Se mettiamo il pool di applicazioni in modalità classica, tutti i caratteri vengono visualizzati correttamente. Purtroppo questa non è un'opzione a lungo termine per noi perché interrompe altre funzionalità sul sito.

Cosa divertente – se si modifica l'impostazione 'Abilita applicazioni a 32 bit' in Pools applicazioni -> Impostazioni avanzate, le pagine visualizzano ancora caratteri falsi, tuttavia mostrano diversi caratteri in modo errato.

Originariamente abbiamo sospettato un carattere falso nella pagina o un problema di codifica – ma abbiamo quadruplicato controllato tutto e verificato che tutto il contenuto è utf-8. Cambiare il pool di applicazioni a 32 bit e vedere i caratteri diversi visualizzati in modo errato mi port a pensare che forse qualcosa è sbagliato in IIS.

Grazie in anticipo per qualsiasi aiuto / intuizione / esperienza.

  • Imansible contattare il server LDAP (-1) per LDAPS e Server 2012
  • Il metodo migliore per clonare un server Windows?
  • Accesso ai file deduplicati di server di Windows da altri sisthemes operativi
  • Come creare una quota di SMB pubblica nel candidato di rilascio di Windows Server 2012
  • Minima utilizzo di memory Windows 2008 o 2012
  • Proxy inverso di Nginx senza terminazione SSL
  • Dominio di Windows: quanto tempo richiede normalmente che un utente si connetta a un computer per la prima volta?
  • Trasferimento di zona Windows Server DNS da NSD
  • One Solution collect form web for “Caratteri stranieri di modalità integrata di IIS”

    Questo è un due parter:

    Da https://technet.microsoft.com/en-us/library/cc753449%28v=ws.10%29.aspx

    "In IIS 7, i pool di applicazioni vengono eseguiti in uno dei due modi: modalità integrata e modalità classica, mentre la modalità pool di applicazioni influenza il modo in cui i server elaborano le richieste per il codice gestito. utilizzare l'integrata pipeline di elaborazione delle richieste di IIS e ASP.NET per elaborare la richiesta, ma se un'applicazione gestita viene eseguita in un pool di applicazioni con modalità classica, il server continuerà a percorrere richieste per il codice gestito attraverso Aspnet_isapi.dll, richiede la stessa applicazione se l'applicazione è in esecuzione in IIS 6.0 ".

    https://forums.iis.net/p/1173138/1962242.aspx

    Alcune persone con problemi simili avevano un paio di correzioni che costringevano IIS 7 a elaborare il personaggio nel modo in cui volevano. Il concetto di ciò è che il classico / IIS 6 sta accettando la codifica che si desidera avere, ma da qualche parte in una pipeline integrata / IIS 7 utilizza la codifica predefinita.

    Questo parla di come impostare la codifica del modo in cui desideri: https://stackoverflow.com/questions/9781157/how-to-set-iis-websites-default-encoding

    Probabilmente si desidera che le cose fiddler / firebug per vedere in che modo sta andando (utf8 quando dovrebbe essere ISO-8859-1 o viceversa).

    Ultimo ma non less importnte, un vero e proprio trattato su come ASP.Net si occupa di problemi di globalizzazione: https://support.microsoft.com/en-us/kb/893663 . È per 2.0 ma nella mia esperienza molte cose come quelle avanzano in versioni successive ed è probabilmente applicabile a 4.0.

    Suggerimenti per Linux e Windows Server, quali Ubuntu, Centos, Apache, Nginx, Debian e argomenti di rete.