J'ai une application Web qui traite les fichiers et écrit les données dans une base de données. Ce processus peut prendre jusqu'à 2 minutes. Disons que ceci est fait sur ProcessFile.aspx. Je voulais assurer l'intégrité des données, donc j'ai enveloppé tout le traitement de la base de données dans un TransactionScope.Problème lors de l'accès à une autre page alors que la première page traite un fichier
Le problème se produit lorsque je suis en train de traiter un fichier, puis essayez d'accéder à une autre page qui accède également à la base de données (il suffit de lire certaines données via une instruction select). Je suis à peu près sûr que cela n'a rien à voir avec le verrouillage de la base de données, car quand je passe directement par SQL Server Management Studio, je n'ai aucun problème à sélectionner sur une table.
J'utilise LinqToSQL. J'ai un ScriptManager sur la page maître. Toutes les pages héritent de cette page maître. ProcessFile.aspx a un UpdatePanel mais pas l'autre page.
Qu'est-ce qui me manque ici? Si plus d'informations sont nécessaires, commentez et je mettrai à jour la question.
EDIT 1: je reçois ce message d'exception
Type : System.Data.SqlClient.SqlException, System.Data, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089
Message : Timeout expired. The timeout period elapsed prior to completion of the operation or the server is not responding.
Source : .Net SqlClient Data Provider
J'ouvre la deuxième page dans une fenêtre de navigateur. Il continue tout simplement à se charger jusqu'à ce que la première page ait fini de traiter le fichier, puis se charge normalement.
Je ne fais pas un appel d'une page à l'autre. Il suffit d'ouvrir une autre page via une autre fenêtre du navigateur via la barre d'adresse.
EDIT 2: Ceci est la première fois que je suis venu à travers où plus d'une réponse résolu mon problème. Les réponses de Remus et de Rick en même temps l'ont résolu pour moi. Je ne savais pas qui choisir comme réponse correcte, alors j'ai retourné une pièce et Rick a gagné. Désolé, Remus! Je ne voulais pas le donner à personne. Cependant, j'avais besoin de mettre en œuvre les deux réponses pour que cela fonctionne.
Salut Rick. Par sessions, voulez-vous dire l'état de la session? – Andrew
Oui, état de la session. – RickNZ
Pour tous ceux qui ont le même problème que moi. S'il vous plaît, regardez aussi la réponse de Remus car c'était aussi nécessaire pour la résoudre. – Andrew