如何防止IIS重写ASP.NET中的文化设置?

我在美国有一个客户,希望所有的时间都显示为军事时间,但其他一切都应该是美国文化。

在我的global.asax中,我创build了美国文化的副本,并使用GB时间显示来创build具有军事时间的美国文化。

我这样做的理由是,我找不到一个有能力的文化,但是如果有人知道的话,这将是伟大的。

我遇到的问题是,当我们将网站部署到IIS(版本6)时,这一切都恢复了美国文化。

寻找如何改变文化,我发现在ASP.NET标签 – >编辑configuration – >应用程序选项卡中的设置

默认值是af-ZA。

似乎没有select禁用这种压倒一切的文化,我不相信af-ZA是正确的吗?

有没有办法来防止IIS重写在ASP.NET中以编程方式设置的文化?

注意:因为我正在寻找服务器端解决scheme而不是编程,所以在这里询问。 谢谢!

这至less是一个编码问题。 基本上,您需要使用System.Globalization中的CultureAndRegionInfoBuilder类来创build和注册新的文化。

一旦注册,您就可以在ASP.Net应用程序设置中select您的新文化。 (或者在您的应用程序的web.config文件中)。

以下是一些可以帮助你开始的参考资料:
http://msdn.microsoft.com/en-us/library/ms172469.aspx
http://msdn.microsoft.com/en-us/library/system.globalization.cultureandregioninfobuilder.aspx

在与更熟悉服务器和asp.net的人交谈之后find了我的问题的答案

显然你只能在Web.config中设置应用程序范围的文化

我在global.asax中的应用程序的主线程中设置了它,但没有传递给子线程处理页面请求。

有趣的是,当通过Visual Studio的托pipe过程在本地机器上运行时,所有的请求都必须通过同一个线程完成。

这导致我相信这是IIS的一个问题,因为直到我们把它放在IIS上,问题才出现。

我的解决scheme:(接受更合适的解决scheme)

必须在每个页面请求线程上设置自定义文化。 我的解决scheme是把它放到主页面加载。 IIS不覆盖您的设置。