Pergunta

Eu tenho um aplicativo da web que estou hospedando e um cliente meu está relatando que certas bibliotecas Telerik JavaScript que estão incluídas no site (mas não todas elas) não estão funcionando corretamente.

O que eu consegui diagnosticar até agora foi que, em algum momento do processo, os recursos webresource.axd que contêm o código JavaScript Telerik estão sendo bloqueados. Pedindo ao cliente que navegue diretamente para o próprio arquivo AXD com a mesma mensagem de erro de consulta que está produzindo uma mensagem de erro "A conexão com o servidor foi redefinida" no Internet Explorer.

O cliente tentou baixar esse arquivo de várias máquinas em seu local, bem como uma máquina fora de seu firewall e rede, e uma máquina em sua casa, e recebe o mesmo erro a cada vez. Eles tentaram usar o Internet Explorer e o Firefox.

No entanto, sou capaz de baixar com êxito o mesmo arquivo dentro de nossa rede de hospedagem, fora dele e da minha conexão residencial.

De acordo com os logs do IIS, todas as tentativas registradas para baixar o recurso produziram um resultado de 200 HTTP OK.

Outras coisas que foram tentadas:

  • Um link para um 404.Axd não existente (deu a mensagem de erro amarelo ASP.NET 404 como esperado)
  • Um link para o webresource.axd, mas com uma consulta inválida apontando para um recurso que não existe (deu o ASP.NET AMARELHO VIEWSTATE INVALIDO OU INVALIDO String64, como esperado)
  • Um link para o mesmo webresource.axd, mas através de um cabeçalho de host diferente (a mesma mensagem de erro "redefinição de conexão").

Estou sem prejuízo agora pelo que poderia ser o problema neste momento. Nosso servidor de hospedagem hospeda dezenas de aplicativos ASP.NET diferentes (incluindo várias instâncias em questão) há anos e esta é a primeira reclamação que já vi sobre isso.

Tenho 99% de certeza de que o problema é algo no final do cliente com uma configuração inadequada de filtragem de firewall ou roteador de conteúdo, mas isso não explica por que o cliente está vendo os mesmos problemas fora do firewall e em casa.

Alguma idéia sobre o que poderia estar errado ou mesmo que mais perguntas a fazer? Alguém já viu algo assim remotamente assim?

Foi útil?

Solução 2

Nunca descobri qual era o problema, mas a atualização dos RadControls para a mais recente (final do primeiro trimestre) parecia resolver o problema.

Outras dicas

Se isso estiver acontecendo com os RadControls clássicos do ASP.NET, tente definir o useEmbeddedScripts = "false" para os controles na página. Isso os fará servir todos os scripts da pasta RadControls (arquivos físicos .js) em vez de usar recursos incorporados (webresource.axd). Naturalmente, você deve garantir que você tenha os arquivos de script na pasta RadControls.

Se isso estiver acontecendo com os RadControls para o ASP.NET AJAX, os scripts de controles serão baixados usando o Script Manager (scriptresource.axd e não webresource.axd). De qualquer forma, você pode tentar usar o Telerik RadscriptManager em vez do scriptManager do ASP.NET -isso combinará e comprime todos os scripts em uma solicitação.

Por fim, você pode pedir ao seu cliente que baixe e instale o Fiddler para o IE ou o Firebug for Firefox e verifique o que exatamente está acontecendo com as solicitações que falham (por exemplo, resposta do servidor, o que está no corpo da resposta etc.).

Para eliminar WebResource.axd e ScriptResource.axd Na página, você precisa

  • Abra o Assmly relacionado usando o refletor ou o ILSPY e salve seus arquivos JS incorporados na seção Recursos.
  • Agora adicione -os como o script referências usando asp: scriptManager

Posteriormente, essas definições serão renderizadas como:

<script src="staticJS1.js" type="text/javascript"></script> 
<script src="staticJS2.js" type="text/javascript"></script> 

E não será mais bloqueado.

<asp:ScriptManager ID="Scriptmanager1" runat="server">
        <Scripts>
            <asp:ScriptReference Name="MicrosoftAjaxWebForms.js" Assembly="System.Web.Extensions"
                Path="~/staticJS1.js" />
            <asp:ScriptReference Name="MicrosoftAjax.js" Assembly="System.Web.Extensions" Path="~/staticJS2.js" />
        </Scripts>
</asp:ScriptManager>
Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top