Client-Side Callbacks e Exceptions


Para aqueles que já trabalharam com Client-Side Callbacks sabem que quando adicionamos a referencia para ele dentro de um evento cliente de um determinado controle, podemos definir uma função, também cliente, que será disparada caso dentro do evento server-side que será executado atire uma excessão.

Só que há um problema neste cenário: se a função server-side que será executada disparar a Exception e o atributo mode do elemento customErrors que está no Web.Config estiver como On ou RemoteOnly (que é o padrão), teu callback nunca trabalhará corretamente, e a seguinte mensagem será passada como argumento para a função de tratamento de erro no cliente:

There was an error in the callback.

Isso ocorre porque quando uma excessão acontece no servidor, a página é modificada, porque o customErrors intercepta o processo e, consequentemente, não devolve ao cliente o que é esperado, ou seja, a mensagem de erro da Exception.

Se você definir o customErrors como Off, o processo resultará com sucesso, mas dependendo da sua estratégia de tratamento de erros, poderá comprometer a aplicação, pois o Off devolve os detalhes do erro para o cliente. Para resolver, talvez será necessário isolar a página que faz o uso do callback em um diretório e, dentro dele, adicionar um novo arquivo Web.Config e sobrescrever o customErrors para Off e tratando todos os pontos da(s) página(s) que podem ocasionar erros com Try.Catch.Finally.

Anúncios

Um comentário sobre “Client-Side Callbacks e Exceptions

  1. Muito obrigado, foi o unico lugar que encontrei onde explica como e o porque do problema, alguem que está começando com o asp.net ficaria perdido ao encontrar esse erro !!!

    Mais uma vez Agradeço.

Deixe uma resposta

Preencha os seus dados abaixo ou clique em um ícone para log in:

Logotipo do WordPress.com

Você está comentando utilizando sua conta WordPress.com. Sair / Alterar )

Imagem do Twitter

Você está comentando utilizando sua conta Twitter. Sair / Alterar )

Foto do Facebook

Você está comentando utilizando sua conta Facebook. Sair / Alterar )

Foto do Google+

Você está comentando utilizando sua conta Google+. Sair / Alterar )

Conectando a %s