Pergunta

Eu instalei ODP.NET e estou usando o serviço de estado de sessão através do Oracle para um site ASP.NET. Eu testei-o, pensei, muito cuidadosamente e não vê grandes problemas. Alguns dos usuários têm reclamado de erros de exceção no entanto, quando eles usam o sistema. Eu adicionei alguns log extra e descobri como reproduzir o problema. Isso acontece quando um usuário o dobro clica em um hyperlink. Eu nunca pensei sobre um duplo clique um hiperlink antes na minha vida e nunca soube que os usuários gostam de fazer isso, então eu não tinha testado essa possibilidade. Isso envia 2 pedidos idênticos para salvar um item de sessão, com a mesma chave primária. Estou usando ODP.NET 11.1.0 para o framework .NET 2.0, e as funções que está sendo chamado foram ofuscados pela Oracle, por isso não posso corrigi-lo lá. Tem mais alguém teve este problema? Alguém sabe de uma solução, a não ser para dizer aos usuários que você faça hiperlinks, clique em Não duplas.

Foi útil?

Solução

Em primeiro lugar, isso soa como algo a Oracle deve abordar. Seu código deve verificar para isso e impedindo-o.

Você pode ter que colocar um cheque em seus manipuladores de hiperlink para evitar a dupla-submissão. Você pode usar uma classe de utilitário como um invólucro em torno do provedor de sessão do Oracle com algumas declarações lock para evitar o envio de casal. Eu teria cuidado, no entanto- você poderia introduzir problemas de desempenho.

Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top