caracteres estrangeiros no modo integrado do IIS

6

OK, isso está nos deixando loucos. Temos um aplicativo criado no ASP.NET 4.0 em execução no Windows Server 2012 e no IIS8.

Algumas páginas do nosso site são traduzidas para vários idiomas, especialmente o japonês e o chinês são problemáticos.

Se colocarmos o pool de aplicativos no modo integrado - alguns caracteres não serão exibidos corretamente. Somos recebidos com pequenos pontos de interrogação.

Se colocarmos o pool de aplicativos no modo clássico, todos os caracteres serão exibidos corretamente. Infelizmente, essa não é uma opção de longo prazo para nós, pois quebra outras funcionalidades no site.

Coisa divertida - se alterarmos a configuração 'Ativar aplicativos de 32 bits' em Pools de aplicativos - > Configurações avançadas As páginas ainda exibem caracteres falsos, no entanto, exibem caracteres diferentes incorretamente.

Originalmente, suspeitávamos de um personagem falso na página ou de um problema de codificação - mas nós quadruplicamos tudo e verificamos que todo o conteúdo é utf-8. A alteração do pool de aplicativos para 32 bits e a exibição incorreta de caracteres diferentes está me levando a pensar que talvez algo esteja errado no IIS.

Agradecemos antecipadamente por qualquer ajuda / insight / experiência.

    
por HopesOblivion 16.06.2014 / 18:37

1 resposta

0

Este é um two-parter:

De link

"No IIS 7, os pools de aplicativos são executados em um dos dois modos: modo integrado e modo clássico. O modo de pool de aplicativos afeta como o servidor processa solicitações de código gerenciado. Se um aplicativo gerenciado for executado em um pool de aplicativos com modo integrado, o servidor usará os pipelines integrados de processamento de solicitações do IIS e do ASP.NET para processar a solicitação.No entanto, se um aplicativo gerenciado for executado em um pool de aplicativos com o modo clássico, o servidor continuará encaminhando solicitações de código gerenciado por meio do Aspnet_isapi. dll, processamento solicita o mesmo como se o aplicativo estava sendo executado no IIS 6.0. "

link

Algumas pessoas com problemas semelhantes tiveram algumas correções ao forçar o IIS 7 a processar os conjuntos de caracteres da maneira que desejavam. A essência disso é que o classic / IIS 6 está aceitando a codificação que você quer ter, mas em algum lugar do pipeline integrado / o IIS 7 está usando sua codificação padrão.

Isso fala sobre como definir a codificação da maneira que você deseja: link

Você provavelmente desejará coisas do fiddler / firebug para ver para que lado está indo (utf8 quando deveria ser ISO-8859-1 ou vice-versa).

Por último, mas não menos importante, um verdadeiro tratado sobre como o ASP.Net lida com problemas de globalização: link . É para o 2.0, mas na minha experiência, muitas coisas como essa levam adiante para versões posteriores e provavelmente são aplicáveis ao 4.0.

    
por 14.06.2015 / 22:03