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

3

Eu tenho um cliente nos EUA que quer que todo o tempo seja exibido como hora militar, mas tudo o mais deve ser a Cultura dos EUA.

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

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

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

Pesquisando como alterar a cultura, encontrei a configuração na guia ASP.NET - > Editar configuração - > Guia de aplicativos

O valor padrão é af-ZA.

Parece não haver nenhuma opção para desabilitar essa sobreposição de cultura, e eu não acredito que af-ZA esteja certo de qualquer maneira?

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

Nota: Estou perguntando aqui desde que eu estou procurando solução do lado do servidor, não programando um. Obrigado!

    
por Brett Allen 19.02.2010 / 20:59

2 respostas

3

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

Uma vez cadastrado, você pode escolher sua nova cultura dentro das configurações do aplicativo ASP.Net. (ou dentro do arquivo web.config para o seu aplicativo).

Aqui estão algumas referências que devem começar: link
link

    
por 22.02.2010 / 18:14
0

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

Aparentemente, você pode definir somente culturas de aplicativos no Web.config

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

Interessante é que, ao rodar em máquinas locais através do processo de hospedagem do Visual Studio, todas as requisições devem ser feitas através do mesmo thread.

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

Minha solução: (Aceita 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 Master. O IIS não substitui suas configurações.

    
por 23.02.2010 / 19:27

Tags