2009-01-06 5 views
7

Ich habe einen gehosteten VPS, der von einem britischen Hostingunternehmen gehostet wird, das aus irgendeinem Grund auf US-Einstellungen eingestellt ist. Bis vor kurzem waren die regionalen Einstellungen "Englisch - Vereinigte Staaten". Ich habe die regionalen Einstellungen korrigiert, aber meine Anwendung arbeitet immer noch mit dem falschen Datumsformat. Siehe:Ändern des Standardgebietsschemas in IIS 6.0

http://www.albaassoc.com/events/listevents.aspx

Die Standarddaten das aktuelle Datum das Datum + 3 Monate sein sollen, aber wie Sie sehen können, werden die dd und MM Felder vertauscht. Hinweis: Der AJAX Kalender-Extender wird manuell auf TT/MM/JJJJ eingestellt. Deshalb denkt der Kalender-Pop, dass wir uns eher für Juni/Juli als für Januar interessieren!

Ich weiß, dass es verschiedene Möglichkeiten gibt, eine Seite oder eine Anwendung für ein bestimmtes Gebietsschema festzulegen, aber ich würde eher einen globalen Ansatz wählen.

Ist es möglich, IIS so zu konfigurieren, dass es in einem anderen Gebietsschema funktioniert, oder wenn dies nicht der Fall ist, kann ich machine.config so anpassen, dass es sich um eine einmalige Änderung handelt?

Ich habe ein Ticket bekam offen mit dem Gastgeber, aber ich bin mir den Atem nicht gehen zu halten - sie gehen zu wollen, nicht IIS neu zu installieren ...

Vielen Dank im Voraus.

Antwort

6

Über das Element globalization können Sie die Kultur und den Anbau für eine Website (über web.config) oder die gesamte Maschine (über machine.config) festlegen.

+0

hmmm ... versuchte das. Intellisense mochte das Kulturattribut nicht, und es schien sowieso nicht zu funktionieren. Ich poste den Code, den ich ausprobiert habe, wenn ich wieder an meinem Schreibtisch bin. – CJM

+0

Ich versuchte dies, indem ich eine web.config in eine Website für eine klassische ASP-Anwendung legte, aber es hat nicht funktioniert. Ich denke, es funktioniert nur für eine ASP.NET-Anwendung und nicht zum Ändern der Ländereinstellung auf der IIS-Ebene. – GiddyUpHorsey

5

Ich habe gerade ein ähnliches Problem (Windows Server 2008, IIS 7). Ich konnte es beheben, indem ich die Web-Konfigurationsdatei bearbeite, aber wie du wollte ich eine globale Lösung.

Die Lösung ist in der Konfiguration, regionale Einstellungen. Ich weiß nicht, wie es funktioniert (unter OS), aber unter WS2008 gibt es eine administrative Registerkarte unter den regionalen Einstellungen. Es ermöglicht Ihnen, die Einstellungen Ihres angemeldeten Benutzers (Sie) auf die administrativen Konten (in diesem Fall Netzwerkdienste) zu kopieren. Rebooted und habe es richtig gemacht.

+0

Prost Nicolas - Ich schaue mir das an. – CJM

+0

Sie hatten Recht Nicolas, es gibt tatsächlich eine Option unter: Systemsteuerung -> Regions- und Sprachoptionen -> Erweitert -> Aktivieren Sie die Option "Alle Einstellungen auf das aktuelle Benutzerkonto und auf das Standardbenutzerprofil anwenden". Das hat für mich funktioniert. Vielen Dank. – lidermin

+0

Funktioniert nicht für mich :(Netzwerkdienst und lokaler Dienst waren immer noch auf en-US eingestellt, wo ich es in en-NZ ändern wollte. – GiddyUpHorsey

4

Das Problem besteht oft darin, dass der Benutzer, der entweder IIS oder den Anwendungspool ausführt, zu dem die Anwendung gehört, ein Systemkonto ist, das bei der Installation des Servers erstellt wurde. Sie erbten daher, was auch immer das Standardgebietsschema zu dieser Zeit war.

Wenn Sie es nicht in regionalen und Sprachoptionen beheben können, können Sie immer versuchen, in der Registrierung direkt zu bearbeiten (mit der üblichen Bedingung, dass Unordnung mit der Registrierung ernsthaft Windows mist). Die regionalen Einstellungen sind alle unter HKEY_USERS \ {userid} \ Control Panel \ International - wenn Sie vergleichen, was für jeden Benutzer da ist, was Sie unter HKEY_CURRENT_USER \ Control Panel \ International haben, sollte es ziemlich offensichtlich sein, was zu ändern ist. Ich habe dies ein paar Mal auf Windows 2000-Servern getan und es hat funktioniert.

Die andere Option besteht nur darin, einen neuen Benutzer auf dem Computer mit dem richtigen Gebietsschema zu erstellen und dann sowohl IIS als auch den Anwendungspool für die Ausführung mit dieser Identität festzulegen.

+0

Danke Robert, Ich schaue mir das an. Ihre zweite Option scheint günstig zu sein - viel weniger invasiv. – CJM

+0

Dank Ihrer Antwort löste ich mein Problem :) http://stackoverflow.com/questions/1879461/date-format-in-asp-net-versus- In-Console-Anwendung – ala

+0

@robertc - Prost, die Registrierung ändern ist, was für mich arbeitete. Ich habe versucht, die anderen Lösungen in den anderen Antworten zur Verfügung gestellt, aber keine von ihnen waren wirksam für die klassische ASP/COM + -Anwendung, die ich arbeiten muss. Ich habe diese [link] (http://support.microsoft.com/kb/163846) verwendet, um die SIDs für die Netzwerkdienst- und lokalen Dienstkonten zu ermitteln. – GiddyUpHorsey

1

Ich hatte ein Problem, mit dem Datum formatiert mm/tt/jjjj, als ich es wollte dd/mm/jjjj. Ich benutze Windows Server 2003 und IIS 6

Die Lösung bestand darin, das folgende zu jeder Web-Konfigurationsdatei hinzuzufügen, dann starten Sie Ihren Server neu und es sollte gut funktionieren.

<globalization requestEncoding="utf-8" responseEncoding="utf-8" culture="en-GB" /> 
+1

Code, auf den verwiesen wird Diese Antwort wird nicht angezeigt. Ich habe den Code aus dieser Antwort verwendet, um dieses Problem zu lösen http://stackoverflow.com/questions/1879461/date-format-in-asp-net-versus-in-console-application/1880178#1880178 – Leah

1

Bit eines alten Thread, aber ich nach einigen legacy klassischen ASP-Site von der heute nicht mehr existierenden Zivilisation der Azteken in Lob ihrer gefiederten Götter geschrieben sehe immer noch.

Ein Serverzug verhinderte, dass der gesamte Datumscode funktionierte und ein Hühnchen zu opfern keine Hilfe war, also ist hier die sehr einfache Lösung in IIS 7 nicht erwähnt worden, möglicherweise weil niemand wie ich leidet.

  1. Wechseln Sie zu IIS-Manager.
  2. Wählen Sie entweder den Stammserverknoten aus, der auf alle Standorte angewendet werden soll, oder wählen Sie den Standortknoten aus, mit dem Sie Probleme haben, wenn Sie den Server als Standard belassen möchten.
  3. Doppelklicken Sie im IIS-Abschnitt auf das ASP-Symbol.
  4. Setzen Sie die Gebietsschema-ID auf die von Ihnen gewünschte Ländereinstellung (2057 für Großbritannien).

Dies sollte sofort wirksam werden.

Alternativ können Sie einen DeLorean kaufen, gehen Sie in der Zeit zurück und töten Sie den Programmierer, der FormateDateTime(d, vbLongDate) war der beste Weg, ein Datum für die Verwendung in der Datenbank zu generieren war. Oder überreden Sie den Kunden, mir eine Menge Geld zu geben, um das Ganze zu ersetzen. Entweder ist es gut.

Verwandte Themen