Crash d'IE ou thread abandonné suite à grosse insertion en bdd
Bonjour à tous,
J'ai un gros souci sur l'application que je développe (VS 2005, ASP.NET 2.0 C#).
J'effectue le traitement de données suivant:
- lecture d'un fichier xml
- affichage des informations à l'écran
- saisie d'informations complémentaires par l'utilisateur
- insertion des données en base.
C'est lors de l'étape d'insertion des données en base qu'il y a un problème. Je dois insérer parfois jusqu'à 30000 enregistrements. Le traitement dure entre 2h et 2h30 suivant la quantité d'info contenue dans les fichiers xml.
Au début je faisais un simple appel de ma procédure stockée d'insertion dans une boucle, la barre de progression de IE progressé pour finalement arriver sur la page d'erreur d'IE (impossible d'afficher la page) et le traitement n'etait pas terminé.
Après quelque recherche, j'ai ajouté un UpdatePanel et un UpdateProgress. Au bout d'un moment (environ 30 minutes) le message affiché dans le ProgressTemplate de l'UpdateProgress disparaissait, puis un pop-up d'erreur s'affichait avec le code erreur suivant : "Sys.WebForms.PageRequestManagerServerErrorException: An unknown error occurred while processing the request on the server. The status code returned from the server was : 500" et j'ai déjà eu le meme message d'erreur avec le code erreur 12152.
Après un click sur le bouton OK de la pop up, quand le code erreur est 500, la fonction qui appelle la proc stock me renvoie : Le thread a été abandonné. et le traitement ne se termine pas.
Après un click sur le bouton OK de la pop up, quand le code erreur est 12152, le traitement continue de façon transparente jusqu'à la fin, et je peux naviguer sur mon application, mais cette pop up est tout de meme derangeante, sans compter que je préférerai que le message de l'Update Progress reste affiché.
Dernière solution testée, j'ai essayé d'effectuer ces multiples insertions a l'intérieur d'un thread. Donc la j'ai directement la main sur l'appli, je peux donc changer de page, mais du coup je ne peux pas savoir quand le thread est fini. Mais le gros problème, c'est que ca fini par planter avec l'erreur : le thread a été abandonné, et donc l'insertion des données n'est pas complète.
Est-ce que quelqu'un à une solution à mon problème ?