Como evito que o IIS substitua meu conjunto de cultura no ASP.NET?

Como evito que o IIS substitua meu conjunto de cultura no ASP.NET?

Tenho um cliente nos EUA que deseja que todos os horários sejam exibidos como horários militares, mas todo o resto deve ser Cultura dos EUA.

No meu global.asax estou criando uma cópia da cultura dos EUA e aplicando a exibição da hora GB para criar uma cultura dos EUA com horário militar.

A razão pela qual estou fazendo isso é que não consegui encontrar uma cultura capaz disso, mas se alguém souber, seria ótimo.

O problema que estou enfrentando é que quando implantamos o site no IIS (versão 6), tudo aparentemente volta à cultura dos EUA.

Procurando como alterar a cultura, encontrei a configuração na guia ASP.NET -> Editar configuração -> guia Aplicativo

O valor padrão é af-ZA.

Parece não haver opção para desativar essa substituição da cultura, e não acredito que af-ZA esteja certo, de qualquer maneira.

Existe uma maneira de impedir que o IIS substitua uma cultura definida programaticamente no ASP.NET?

Nota: Perguntando aqui porque estou procurando uma solução do lado do servidor, não programando uma. Obrigado!

Responder1

Esta é, pelo menos parcialmente, uma questão de codificação. Basicamente, você precisa criar e registrar sua nova cultura usando a classe CultureAndRegionInfoBuilder do System.Globalization.

Uma vez registrado, você poderá escolher sua nova cultura nas configurações do aplicativo ASP.Net. (ou no arquivo web.config do seu aplicativo).

Aqui estão algumas referências que devem ajudá-lo a começar:
http://msdn.microsoft.com/en-us/library/ms172469.aspx
http://msdn.microsoft.com/en-us/library/system.globalization.cultureandregioninfobuilder.aspx

Responder2

Encontrei a resposta para minha pergunta depois de conversar com alguém mais versado em servidores e asp.net

Aparentemente, você só pode definir culturas para todo o aplicativo no Web.config

Eu estava configurando-o no thread principal do aplicativo em global.asax, que não foi transferido para threads filhos que processavam solicitações de página.

O interessante é que ao rodar em máquina local através do processo de hospedagem do Visual Studio, todas as solicitações devem ser feitas através do mesmo thread.

Foi isso que me levou a acreditar que era um problema com o IIS, pois só quando o colocamos no IIS o problema apareceu.

Minha solução: (aceitei uma solução mais adequada)

Uma cultura personalizada deve ser definida em cada thread de solicitação de página. Minha solução foi colocá-lo no carregamento da página mestra. O IIS não substitui suas configurações.

informação relacionada