2009-07-07 22 views
6

In un'applicazione web ho IHttpHandler che quando invocato avvia un'applicazione regolare che si collega a un database firebird e tra le altre cose analizza alcune date dal database.Process.Start specificare cultura

Quando viene eseguito dal desktop, l'applicazione esegue l'operazione senza problemi. Ma quando viene avviato da httpHandler finisce con la cultura sbagliata e non riesce ad analizzare le date. Ive imposta la cultura sia per web.config che per CurrentThread.CurrentCulture ma finisce comunque con quella sbagliata. Tutto questo viene eseguito da un Windows Server 2003 inglese con la cultura impostata su sv-SE.

Quindi c'è un modo per avviare un'applicazione con System.Diganotics.Process.Start con una cultura specifica? Se non esiste la cultura utilizzata dal nuovo processo avviato?

+0

Puoi spiegare ulteriormente cosa stai cercando di ottenere? – Lazarus

risposta

2

Non penso che ci sia un modo per specificare la cultura. La classe CultureInfo è specifica per .NET e, per quanto ne so, non esiste una nozione specifica per app di una cultura in Windows. Non è possibile specificare una cultura utilizzando le classi Process e ProcessStartInfo.

Tuttavia, credo che la cultura sia associata all'utente corrente, quindi quello che potrebbe accadere è che la tua app Web è in esecuzione in un contesto utente diverso, quindi quando viene avviata dall'app Web, l'altra app ottiene il suo ' impostazioni della cultura degli utenti. Pertanto, è possibile modificare la cultura (impostazioni regionali) per l'utente utilizzato per eseguire l'app Web.

D'altra parte, se la sua app .NET è in esecuzione, è possibile inserire semplicemente la cultura in essa.

+0

Sì, ho la sensazione che potrebbe avere con alcune impostazioni utente da fare. Sfortunatamente non è un'applicazione .NET e non posso modificarlo facilmente. Quindi la domanda rimanente è. Come posso cambiare le impostazioni regionali per un account di sistema? – Tjelle

+0

Dopo una piccola ricerca, sembra che Locales sia l'equivalente nativo di Windows di CultureInfo-s di .NET. Una descrizione generale qui: http://msdn.microsoft.com/en-us/goglobal/bb688174.aspx Non ho trovato alcun modo per modificare le impostazioni internazionali dell'utente. Potrebbe esserci, quindi forse non ho cercato abbastanza duramente. Ci può essere un modo per farlo tramite un comando da riga di comando (una domanda ServerFault candidata?). Se sei disposto a sperimentare, puoi provare a rendere temporaneamente l'account utente interattivo (aggiungilo al gruppo Users), accedere e modificare l'impostazione tramite l'interfaccia utente. –