
米国に、すべての時間を 24 時間制で表示したいが、それ以外はすべて米国文化に従うことを希望するクライアントがいます。
私の global.asax では、米国文化のコピーを作成し、GB 時間表示を適用して、軍用時間を使用した米国文化を作成しています。
私がこれをやっている理由は、それが可能な文化を見つけられなかったからです。しかし、もし誰かが知っていたら、それは素晴らしいことです。
私が遭遇している問題は、Web サイトを IIS (バージョン 6) に展開すると、すべてが米国の文化に戻ってしまうことです。
カルチャを変更する方法を調べたところ、ASP.NETタブ -> 構成の編集 -> アプリケーションタブで設定を見つけました。
デフォルト値は af-ZA です。
この文化の上書きを無効にするオプションはないようですが、いずれにしても af-ZA が正しいとは思えません。
ASP.NET でプログラム的に設定されたカルチャを IIS が上書きするのを防ぐ方法はありますか?
注: プログラミングのソリューションではなく、サーバー側のソリューションを探しているので、ここで質問しています。ありがとうございます!
答え1
これは少なくとも部分的にはコーディングに関する質問です。基本的には、System.Globalization の CultureAndRegionInfoBuilder クラスを使用して新しいカルチャを作成し、登録する必要があります。
登録したら、ASP.Net アプリケーション設定内で新しいカルチャを選択できます。(またはアプリケーションの web.config ファイル内で)
始めるにあたって参考になる参考資料をいくつか紹介します。
マイクロソフト
http://msdn.microsoft.com/en-us/library/system.globalization.cultureandregioninfobuilder.aspx
答え2
サーバーとasp.netに詳しい人に相談したところ、私の質問に対する答えが見つかりました
どうやら、Web.configではアプリケーション全体のカルチャのみを設定できるようです。
私は global.asax のアプリケーションのメイン スレッドでこれを設定していましたが、これはページ要求を処理する子スレッドには引き継がれませんでした。
興味深いのは、Visual Studio のホスティング プロセスを通じてローカル マシン上で実行する場合、すべての要求は同じスレッドを通じて実行する必要があることです。
IIS に配置するまで問題は発生しなかったため、これが IIS の問題であると信じるに至りました。
私の解決策: (より適切な解決策を受け入れました)
各ページ要求スレッドにカスタム カルチャを設定する必要があります。私の解決策は、それをマスター ページの読み込みに配置することでした。IIS は設定を上書きしません。