Comment effectuer une transaction de base de données dans laquelle je crée un nouvel enregistrement puis effectuer un appel à un service Web en utilisant le nouvel ID d'enregistrement renvoyé par la base de données qui manipulera également la même base de données ? Je pourrais évidemment mettre à jour toutes les tables directement à partir du même objet SQLConnection mais la logique dans l'appel de service Web est susceptible de changer et j'ai vraiment besoin de m'assurer que les modifications apportées par mon code sont validées par les changements apportés par le service web appelé.Maintien des transactions SQL sur les appels de service Web .Net
Répondre
Si le service Web a la responsabilité de manipuler la base de données, je voudrais étendre le service Web pour effectuer les actions que votre code est en train de faire. Le point d'utiliser le service Web est (devrait être) de séparer votre code d'avoir à traiter directement avec la base de données. L'introduction de la manipulation directe de DB dans votre code va simplement rendre les choses plus compliquées et plus difficiles à maintenir.
Ce n'est pas quelque chose que vous voulez dans une transaction réelle. Les transactions doivent être aussi courtes que possible, ce qui signifie qu'il n'y a pas d'interaction de l'utilisateur au milieu ou dans le cas présent, en attente d'un service Web. En ce qui concerne votre problème, si vous avez le contrôle du service Web, modifiez le service Web pour effectuer un appel de procédure stockée qui effectue la transaction entière. S'il y a des actions qui DOIVENT être complétées chaque fois que le service est appelé, elles devraient faire partie du service. Je pense que vous n'avez pas le contrôle sur le service Web, ou ce ne serait pas un problème. Comment le service Web accède-t-il à la base de données? Si vous utilisez déjà une procédure stockée, vous devriez pouvoir ajouter la logique nécessaire. Encore une fois, je suppose que ce n'est pas le cas ou cela n'aurait pas posé de problème. Ma suggestion est que vous essayez de changer le service Web pour s'adapter à cette architecture si possible. En supposant que le service Web accède directement aux tables (beurk), vous devrez mettre du code dans votre indicatif qui fait l'insertion, appelle le service Web, puis vérifie si le service Web a fait ce qu'il était censé faire faites, et si ce n'est pas le cas, votre code prend les mesures nécessaires pour tout annuler. C'est fondamentalement comme un moteur de transaction développé localement. C'est aussi très désordonné et a tendance à être sujettes aux insectes et difficile à maintenir. Sans parler, ce n'est pas une preuve complète à 100%.
- 1. Options de transaction via les appels de service Web
- 2. Les appels de service Web asynchrones appellent-ils toujours AsyncCallback?
- 3. Gestion des transactions dans les applications Web
- 4. Programmation des appels de service Web synchrones dans flex
- 5. Restauration de transactions et services Web
- 6. Sécurité .NET Web Service
- 7. Transactions en .net
- 8. VB6 Erreur d'automatisation sur les appels à .NET 3.5 Assemblées Après les premiers appels
- 9. Appel du service Web .Net avec Php
- 10. asmx .net 2.0 service web
- 11. Le service Web MSCRM prend-il en charge les transactions de base de données?
- 12. WCF transactions sur Internet
- 13. PowerShell: Performances des appels de méthodes .NET
- 14. Suivi des modifications dans SQL Server pendant les transactions
- 15. Maintien de l'intégrité des messages
- 16. Problème de service Web .NET Framework
- 17. limite pour les appels Ajax sur une page Web?
- 18. appeler le service web java par service web .net
- 19. Le service Web ASP.NET renvoie UNIQUEMENT la page de documentation pour tous les appels.
- 20. Client de service Web (.NET 2008), gestion des exceptions?
- 21. Erreur de pression de mémoire du service Web .Net
- 22. Comment définir le délai d'expiration des appels de service Web générés par Java Wireless Toolkit?
- 23. Comment réduire le journal des transactions sur les bases de données MS SQL 2000?
- 24. Conservation de la mémoire XML en mémoire entre les appels de service Web
- 25. HttpWebRequests échouer sur les appels suivants
- 26. Journal des appels de service WCF avec informations de paramètre
- 27. Passage Auth aux appels d'API avec des références de service Web
- 28. Transactions SQLTransaction et T-SQL
- 29. Un service Web .NET instancié avec chaque appel de méthode?
- 30. délai d'attente pour les appels de service Web asynchrone en C#