C# 进程。开始指定区域性

C# 进程。开始指定区域性,c#,.net,globalization,C#,.net,Globalization,在一个webapplication中,我有一个IHttpHandler,当调用它时,它会启动一个连接到firebird数据库的常规应用程序,并解析数据库中的一些数据 当从桌面上运行时,应用程序会执行应该执行的操作,不会出现任何问题。但是当它从httpHandler启动时,它以错误的区域性结束,并且无法解析日期。 我在web.config和CurrentThread.CurrentCulture中都设置了区域性,但结果仍然是错误的。 所有这些都是从英语Windows Server 2003运行的,

在一个webapplication中,我有一个IHttpHandler,当调用它时,它会启动一个连接到firebird数据库的常规应用程序,并解析数据库中的一些数据

当从桌面上运行时,应用程序会执行应该执行的操作,不会出现任何问题。但是当它从httpHandler启动时,它以错误的区域性结束,并且无法解析日期。 我在web.config和CurrentThread.CurrentCulture中都设置了区域性,但结果仍然是错误的。 所有这些都是从英语Windows Server 2003运行的,其区域性设置为sv SE

那么,有没有一种方法可以使用System.Diganotics.Process.start和特定区域性启动应用程序?
如果没有新启动的流程使用哪个区域性?

我认为没有办法指定区域性。CultureInfo类特定于.NET,据我所知,windows中没有特定于应用程序的区域性概念。无法使用Process和ProcessStartInfo类指定区域性

但是,我相信文化与当前用户相关,因此可能发生的情况是,您的Web应用程序正在不同用户的上下文中运行,因此当从Web应用程序启动时,另一个应用程序将获得其“用户”文化设置。因此,您可以更改用于运行web应用的用户的区域性(区域设置)


另一方面,如果你正在运行的是一个.NET应用程序,你可以将文化硬编码到其中。

你能进一步解释一下,你想实现什么吗?是的,我有一种感觉,它可能需要一些用户设置来完成。不幸的是,它不是一个.NET应用程序,我不能轻易修改它。所以剩下的问题是。如何更改系统帐户的区域设置?经过一点研究,区域设置似乎是Windows的本地设置,相当于.NET的CultureInfo-s。这里有一个一般性的描述:我找不到以编程方式更改用户区域设置的方法。可能有,所以可能我没有努力搜索。可以通过命令行命令(候选服务器故障问题?)实现这一点。如果您愿意尝试,您可以尝试暂时将用户帐户设置为交互式帐户(将其添加到用户组),登录并通过UI更改设置。