Question

J'ai installé ODP.NET et je utilise le service d'état de session par Oracle pour un site Web ASP.NET. Je l'ai testé, je pensais, assez bien et ne voit pas de problèmes majeurs. Certains utilisateurs se sont plaints d'erreurs d'exception cependant lorsqu'ils utilisent le système. Je glissai l'exploitation forestière supplémentaire et trouvé comment reproduire le problème. Il se produit lorsqu'un utilisateur double-clique sur un lien hypertexte. Je ne l'ai jamais pensé à double-cliquant sur un lien hypertexte dans ma vie et ne savait que les utilisateurs aiment faire ça, donc je ne l'avais pas testé cette possibilité. Cela envoie 2 demandes identiques pour enregistrer un élément de session, avec la même clé primaire. J'utilise ODP.NET 11.1.0 pour le framework .NET 2.0 et les fonctions étant appelé ont été obscurcie par Oracle, donc je ne peux pas y fixer. Quelqu'un d'autre a-t-il eu ce problème? Est-ce que quelqu'un sait d'une solution, autre que de dire aux utilisateurs que vous ne double-cliquez sur les liens hypertexte.

Était-ce utile?

La solution

Tout d'abord, Cela ressemble à quelque chose Oracle devrait aborder. Leur code devrait vérifier pour cela et prévenir.

Vous devrez peut-être mettre un frein à vos gestionnaires de lien hypertexte pour empêcher la double soumission. Vous pouvez utiliser une classe utilitaire comme un wrapper autour du fournisseur de la session Oracle avec quelques déclarations de lock pour éviter la double soumission. Je serais prudent, however- vous pouvez introduire des problèmes de performance.

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top