Página hospedada no IIS7.5 altera a aparência no IIS6


1

Eu estou no meio de mudar o nosso site para um novo servidor web (Server 2008 R2), e estou tentando copiar um dos novos aplicativos para o servidor antigo (Server 2003), a fim de permitir que os usuários acessem-lo nesse meio tempo . O problema que estou enfrentando é que, embora eu tenha copiado a pasta diretamente para o servidor antigo, iniciei o aplicativo no servidor antigo e defini a versão do ASP.NET como 4.0 para corresponder ao que está sendo usado no novo servidor, servidor antigo exibe a página de forma diferente. Especificamente, o estilo CSS (localizado na cabeça) que define o tamanho e o tipo da fonte não é utilizado no servidor antigo. Em outra página, uma área de texto não é exibida nas dimensões especificadas na página ASP.NET; as informações de estilo simplesmente não chegam ao código-fonte da página resultante.

Por exemplo, aqui está a linha de código no arquivo aspx:

<td colspan="3"><asp:TextBox ID="cre_slm_comm1" runat="server" Height="156px"
    TextMode="MultiLine" Width="400px" Text='<%# Eval("cre_slm_comm1") %>' /></td>

Este é o código-fonte resultante no servidor IIS6:

<td colspan="3"><textarea name="FormView1$cre_slm_comm1" rows="2" cols="20"
    id="FormView1_cre_slm_comm1">Test comment. 3/1/13. br.</textarea></td>

E a mesma linha no servidor IIS7.5:

<td colspan="3"><textarea name="FormView1$cre_slm_comm1" rows="2" cols="20"
    id="FormView1_cre_slm_comm1" style="height:156px;width:400px;">
    Test comment. 3/1/13. br.</textarea></td>

Alguma sugestão sobre o que posso fazer para corrigir a maneira como esses servidores não estão interpretando o código da mesma maneira?


Se não for usado no servidor antigo. A solução lógica não seria removê-lo?
Ramhound

Pertence a serverfault.com. Também tente usar v2 do framework?
Ian Quigley

Ramhound: Eu não entendo o seu comentário. Ian: A página funciona bem usando o .net 4.0 no servidor IIS7.5. Está usando o 4.0 no servidor IIS6 também. Por que mudar para v2 faz diferença?

Respostas:


2

Altere o pool de aplicativos do site no IIS para direcionar a mesma versão do .NET Framework e Pipeline do outro servidor.

ou adicione esta linha no web.config:

<pages controlRenderingCompatibilityVersion="3.5" />

ASP.NET 4 Breaking Changes

O Asp.net adapta o HTML renderizado de acordo com o tipo e a versão do navegador. verifique se está relacionado apenas a um navegador.

Se o problema persistir, talvez seja um bug .net ou o servidor 2 tenha alguma diferença na versão do framework (algum patch etc etc).

De qualquer forma, uma solução fácil e uma boa prática IMHO é usar uma classe css para o estilo de um elemento.


Essa linha já está presente no web.config, e o framework é 4.0 em ambos (indicado no OP).

@Ben realmente estranho ... você está usando navegadores diferentes? A pesquisa de opinião está no pipeline integrado ou clássico?
giammin

Giammin: Não. IE10, duas guias diferentes. Eu tenho a página puxada para cima no novo servidor em um e o velho no outro. O IIS7.5 tem a mesma aparência tanto no modo integrado quanto no modo clássico (embora eu o tenha usado integrado). O servidor IIS6 está interpretando o aspx de maneira diferente e perdendo alguns dos estilos na origem resultante como resultado. Não sei o que causaria isso, no entanto.

@Ben este é um comportamento asp.net. Está adaptando a renderização de elementos html.
giammin

1
Houve algumas coisas que foram quebradas - foi um único elemento em cada uma das três páginas, especificamente - então acabei pegando esses elementos de estilo dos atributos do elemento e os atribui a uma classe css para cada elemento. Não sei por que isso foi necessário - aparentemente, o IIS6 não estava traduzindo corretamente essas configurações de atributo na renderização de HTML - mas funciona como está, o que é realmente importante, de qualquer maneira. Obrigado!
Ao utilizar nosso site, você reconhece que leu e compreendeu nossa Política de Cookies e nossa Política de Privacidade.
Licensed under cc by-sa 3.0 with attribution required.