Wie verhindere ich, dass IIS meinen Kultursatz in ASP.NET überschreibt?

Wie verhindere ich, dass IIS meinen Kultursatz in ASP.NET überschreibt?

Ich habe einen Kunden in den USA, der möchte, dass die gesamte Zeit als Militärzeit angezeigt wird, alles andere jedoch der US-Kultur entsprechen soll.

In meinem global.asax erstelle ich eine Kopie der US-Kultur und wende die GB-Zeitanzeige an, um eine US-Kultur mit Militärzeit zu erstellen.

Der Grund, warum ich das mache, ist, dass ich keine Kultur finden konnte, die dazu in der Lage ist. Es wäre jedoch großartig, wenn es jemand wüsste.

Das Problem, auf das ich stoße, ist, dass beim Bereitstellen der Website auf IIS (Version 6) scheinbar alles auf die US-Kultur zurückgesetzt wird.

Als ich nachschaute, wie man die Kultur ändert, fand ich die Einstellung unter „ASP.NET-Registerkarte -> Konfiguration bearbeiten -> Registerkarte „Anwendung““

Der Standardwert ist af-ZA.

Es scheint keine Möglichkeit zu geben, diese Überschreibung der Kultur zu deaktivieren, und ich glaube sowieso nicht, dass af-ZA Recht hat?

Gibt es eine Möglichkeit, zu verhindern, dass IIS eine in ASP.NET programmgesteuert festgelegte Kultur überschreibt?

Hinweis: Ich frage hier, weil ich nach einer serverseitigen Lösung suche und nicht nach einer Programmierlösung. Danke!

Antwort1

Dies ist zumindest teilweise eine Codierungsfrage. Grundsätzlich müssen Sie Ihre neue Kultur mithilfe der CultureAndRegionInfoBuilder-Klasse von System.Globalization erstellen und registrieren.

Nach der Registrierung können Sie Ihre neue Kultur in den ASP.Net-Anwendungseinstellungen auswählen (oder in der Datei web.config für Ihre Anwendung).

Hier sind einige Referenzen, die Ihnen den Einstieg erleichtern sollten:
http://msdn.microsoft.com/en-us/library/ms172469.aspx
http://msdn.microsoft.com/en-us/library/system.globalization.cultureandregioninfobuilder.aspx

Antwort2

Die Antwort auf meine Frage fand ich, nachdem ich mit jemandem gesprochen hatte, der sich besser mit Servern und asp.net auskennt

Anscheinend können Sie in der Web.config nur anwendungsweite Kulturen festlegen

Ich habe es im Hauptthread der Anwendung in global.asax festgelegt, was nicht auf untergeordnete Threads übertragen wurde, die Seitenanforderungen verarbeiten.

Interessant ist, dass beim Ausführen auf dem lokalen Computer über den Hosting-Prozess von Visual Studio alle Anforderungen über denselben Thread erfolgen müssen.

Dies brachte mich zu der Annahme, dass es sich um ein Problem mit IIS handelte, da das Problem erst auftrat, als wir es auf IIS installierten.

Meine Lösung: (Eine passendere Lösung akzeptiert)

Für jeden Seitenanforderungsthread muss eine benutzerdefinierte Kultur festgelegt werden. Meine Lösung bestand darin, sie in das Laden der Masterseite einzufügen. IIS überschreibt Ihre Einstellungen nicht.

verwandte Informationen