Question

Je le déploiement d'une application .NET à une autre machine.

dans la demande de la console, la valeur de

DateTime.Today.ToLongDateString();

est

10 December 2009

tandis que dans l'application web est la valeur

23 ذو الحجة 1430 < equivalent in higri calendar

Comment l'application Web obtenir la culture, et pourquoi est-il différent de l'application de la console?

Était-ce utile?

La solution 4

Je suis la réponse! il a été l'un des dossiers du registre des utilisateurs de probablement ASPNET ou IIS. en utilisant regedit, je l'ai trouvé dans l'un des utilisateurs internationaux = arabe

Merci à: modifier les paramètres linguistiques par défaut dans IIS 6.0

Autres conseils

Dans le web.config ou machine.config vous pouvez spécifier la culture par défaut pour l'application ASP.Net par le élément mondialisation .

<configuration>
  <system.web>
    <globalization 
      culture="en-US"/>
  </system.web>
</configuration>

il obtient de la machine. Voir comment vous pouvez le modifier.

Il est susceptible d'être la culture de la machine elle-même. - Vous dites que vous déployez à une autre machine

Quelle culture vous voulez à être?

EDIT: Vos options sont:

  • Définir la culture pour la machine elle-même, ce qui affecte l'ensemble de Windows
  • Peut-être définir la culture pour .NET en général - je ne suis pas sûr que ce soit disponible ou non dans machine.config. Ce n'est pas quelque chose que j'ai jamais fait.
  • Définir la culture pour chaque page
  • Indiquez la culture explicitement chaque fois que vous analysez ou les chaînes de format

Le dernier est le moins invasif, pour être honnête. La plupart des méthodes comme String.Parse etc ont une surcharge avec un paramètre IFormatProvider. Vous pouvez spécifier que le CultureInfo concerné.

Thread.CurrentThread.CurrentCulture = new CultureInfo("en-US");
DateTime.Today.ToLongDateString();
Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top