我在美国有一个客户,希望所有的时间都显示为军事时间,但其他一切都应该是美国文化。
在我的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不覆盖您的设置。