Domanda

Ho trovato un po 'di sottaceti con un nuovo web server. Abbiamo un nuovo server Web che visualizza le date in modo diverso rispetto ai nostri vecchi server Web.

Stiamo eseguendo pagine Web ASP classiche su IIS 6.0 con Windows Server 2003.

Abbiamo effettuato l'accesso come amministratore e configurato le impostazioni internazionali in modo appropriato, quindi applicate le impostazioni all'utente corrente e al profilo utente predefinito.

Siamo quindi entrati nel registro e abbiamo aggiornato i formati appropriati in HKEY_USERS / .default / control panel / international.

Aggiorna la configurazione di asp.net per i nostri siti Web alla codepage e alle impostazioni internazionali corrette.

Qualcuno ha altri posti da cui l'applicazione potrebbe ottenere i formati di data?

È stato utile?

Soluzione

So che questo non è il modo "corretto" per risolvere il problema. Tuttavia, l'applicazione è stata scritta molti anni fa, ottenere qualcosa attraverso il controllo di pianificazione / modifica sarebbe una seccatura ed è l'unica applicazione in esecuzione sul server. Pertanto, va bene configurare il server per soddisfare questa singola applicazione. Inoltre mi faceva impazzire il fatto che un nuovo server che doveva essere configurato in modo identico a un vecchio server non funzionasse.

Si scopre che oltre a HKEY_USERS / * / Control Panel / international , esiste un'impostazione per i programmi non Unicode. Può essere trovato in HKLM / system / currentcontrolset / control / nls / language / Default . Impostalo sulla codepage corretta ed è dorata.

D'altra parte, se si preferisce non modificare direttamente il registro, è possibile aggiornare tutti questi valori tramite le impostazioni internazionali dal pannello di controllo.

È possibile regolare i formati tramite il pulsante ' personalizza '. È possibile modificare la "lingua per i programmi non Unicode" nella scheda Avanzate. Assicurati solo di selezionare "Applica al profilo predefinito" nella parte inferiore della scheda Avanzate.

Altri suggerimenti

Non credo che la risposta del voto più alto sia giusta, anche se è vicina.

Ho dovuto usare regedit per modificare tutte le impostazioni di internazionalizzazione di HKU \ S-1-5-19 \ Control Panel \ International (NT Authority) e HKU \ S-1-5-20 \ Control Panel \ International (Network Servizio) per abbinare le impostazioni che erano già in HKU \ S-1-5-18 \ Pannello di controllo \ Internazionale (sistema locale).

Funzionava perfettamente.

Ho modificato manualmente tutte le impostazioni che ho potuto vedere che erano diverse.

Dovrei pensare che avevo davvero solo bisogno di cambiare le impostazioni per S-1-5-20 (Servizio di rete).

ASP classico imposta automaticamente l'ID impostazioni locali configurato durante l'installazione del server. Se hai accesso al server originale, esegui il codice seguente per ottenere l'ID impostazioni locali in cui opera e verifica che il nuovo server stia utilizzando lo stesso.

<%=Session.LCID%>

Se gli ID impostazioni internazionali sono diversi e non è possibile modificarli sul nuovo server, è possibile aggiungere una riga al sottotitolo Session_OnStart in global.asa per l'applicazione che assegna l'ID impostazioni locali corretto a Session.LCID.

Uso di una pagina ASP con il contenuto: -

Response.Write GetLocale

Potrebbe essere informativo, ti mostrerà quale locale VBScript pensa che stia usando.

Ho visto problemi come questo in un passato oscuro e lontano quando ho usato la sicurezza integrata. L'ASP memorizza nella cache i dettagli regionali da un alveare utente quando deve prima usarli, quindi continua a utilizzare tali impostazioni fino alla fine del processo. ASP ottiene queste impostazioni dall'hive dell'utente associato all'identità dell'utente con cui il codice è attualmente in esecuzione. Il più delle volte sarebbe DEFAULT perché l'utente non ha un profilo sul sistema.

Tuttavia, se l'utente accede in modo interattivo al server, avrà un profilo e quindi verranno utilizzate le sue impostazioni. Quindi ho visto situazioni in cui il server sembra avere problemi intermedi con le impostazioni regionali.

Non ricordo se l'ho visto su IIS6, l'ho sicuramente visto su IIS5.

Se si esegue l'applicazione ASP con un altro account (non IUSR_Guest) Accedi come tale account, imposta il formato data / ora come desideri e riavvia IIS.

Vai al Pannello di controllo - > Opzioni internazionali e della lingua, imposta tutte le opzioni necessarie, quindi nella scheda "Avanzate" seleziona le impostazioni per i programmi non Unicode e seleziona "Applica tutte le impostazioni all'account corrente e al profilo utente predefinito". Premere OK e riavviare il server.

Su Windows Server 2008 gli amministratori dispongono di una scheda "Amministrativa" aggiuntiva. Lì premi 'Copia negli account riservati'.

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top