2009-03-01 5 views
1

My .Net .exe wird verwendet, um eine Datei zu lesen und Informationen in SQL DB zu speichern. Auf dem Dev-System hatten wir Standardeinstellungen und Dateien in US-Gebietsschema und die Dinge funktionierten gut.Bereitstellen von Anwendung in einem anderen Gebietsschema als dem Gebietsschema für die Entwicklung

Ich habe die gleiche .exe verwendet und auf unserem Prod-Server bereitgestellt, wo die Standardeinstellung und die Dateien in englischer Sprache sind.

Ich habe das Datetime.Parse verwendet, das das Datum im Format des lokalen Systems analysieren sollte, d. H. Für US MM/TT/JJJJ und für UK TT/MM/JJJJ.

Aber beim Parsen des Datums im UK-Format gibt es eine Ausnahme, kann mir jemand helfen, wo ich falsch mache.

Ich bemerkte auch etwas seltsam, dass, wenn ich die Standardeinstellung von dev Maschine nach UK änderte und dann die .exe kompilierte und das gleiche entfaltete es funktionierte.

Können Sie mich auch wissen, warum es funktioniert hat.

+0

Wäre hilfreich, wenn Sie uns sagen, welche Art von Ausnahme. Und eine Linie oder 2 der Quelle. –

Antwort

1

Sie müssen Ihrer DateTime.Parse() - Methode einen iformatprovider (d. H. Eine Instanz einer System.Globalization.CultureInfo) bereitstellen. Übrigens, ich schlage vor, TryParse zu verwenden, oder wenn Sie genau wissen, wie Ihre Datetime-Strings ankommen, verwenden Sie TryParseExact, da sie viel schneller sind.

0

Die beste Lösung besteht darin, das Gebietsschema in der app.config anzugeben, wobei das System überschrieben wird.

+0

Wie ist das für britische Kunden am besten? Am einfachsten vielleicht. –

+0

gut ... Sie haben einen Punkt. UPS! –

0

Schwer zu sagen, ohne weitere Details, aber vielleicht der Anwendungsserver und der SQL-Server lief auf einer anderen Sprache als erwartet Einstellung. Selbst wenn Sie die Kultureinstellung auf dem Anwendungsserver richtig eingestellt haben, sind die Datumszeitformate auf dem SQL-Server immer noch nicht wie erwartet.