2009-07-07 3 views
6

私はIHttpHandlerを持っています。呼び出されると、Firebirdデータベースに接続する通常のアプリケーションを起動し、データベースからいくつかの日付を解析します。Process.Startは文化を指定します

デスクトップから実行すると、アプリケーションは何も問題なく実行する必要があります。しかし、httpHandlerから起動すると、間違った文化に終わり、日付の解析に失敗します。 Iveはweb.configとCurrentThread.CurrentCultureの両方のカルチャを設定しますが、それでもやはり間違ったものになります。 これはすべて英語のWindows Server 2003から実行され、カルチャーはsv-SEに設定されています。

特定のカルチャを持つSystem.Diganotics.Process.Startでアプリケーションを起動する方法はありますか? 新しく開始されたプロセスがどのカルチャを使用していない場合は、

+0

あなたはさらに何を達成しようとしていますか? – Lazarus

答えて

2

私は文化を特定する方法はないと思います。 CultureInfoクラスは.NET固有のクラスであり、私が知る限り、ウィンドウ内にカルチャのアプリケーション固有の概念はありません。 ProcessクラスとProcessStartInfoクラスを使用してカルチャを指定する方法はありません。

しかし、文化は現在のユーザーと関連付けられていると考えられます。そのため、Webアプリケーションが別のユーザーのコンテキスト内で実行されているため、Webアプリケーションから開始すると、ユーザーのカルチャー設定。したがって、Webアプリケーションの実行に使用されるユーザーのカルチャ(地域設定)を変更することができます。

一方、実行している.NETアプリケーションの場合は、その中にカルチャをハードコードすることができます。

+0

はい、私はそれがいくつかのユーザー設定で行うかもしれないという気持ちを持っています。残念なことに.NETアプリケーションではなく、簡単に変更できません。 ですから、残りの質問はです。システムアカウントの地域設定を変更するにはどうすればよいですか? – Tjelle

+0

ちょっとした研究の後、ロケールは.NETのCultureInfoにネイティブで対応しているようです。 一般的な説明は次のとおりです。http://msdn.microsoft.com/en-us/goglobal/bb688174.aspx プログラムでユーザーのロケールを変更する方法が見つかりませんでした。おそらく、私は十分な検索をしなかったかもしれません。これを行うには、コマンドラインコマンド(ServerFault候補の質問)を使用する方法があります。 実験したい場合は、一時的にユーザーアカウントを対話型のものにして(ユーザーグループに追加)、ログインして、UIを介して設定を変更してみてください。 –

関連する問題