Exécuter une tâche en arrière-plan, mais le retour de la réponse au client dans ASP MVC de l'application web

Je suis en train de mettre en œuvre une fonctionnalité où il y a une procédure stockée sur le Serveur SQL server qui doit être appelée à partir d'ASP MVC de l'application et traitées sur le fond (ca peut prendre longtemps car il demande une autre procédure stockée à distance pour traiter un fichier excel stockés sur un serveur). Mais la réponse de la dernière requête HTTP doivent être retournées au client pour que l'INTERFACE utilisateur ne sera pas suspendu en attente de traitement.

J'ai essayé beaucoup de différentes façons, mais l'INTERFACE est encore de ne pas répondre tout de suite.

J'ai essayé BackgroundWorker mais il ne permet pas que le thread principal de réponse au client jusqu'à ce que sa fait de traitement,
aussi j'ai essayé:

Thread.QueueUserWorkItem(delegate { //method which performs stored procedure calls//
}); 

Toujours pas de retour de réponse et HttpContext.Current pas disponible dans le thread d'arrière-plan.

Peut-être il ya une façon de commencer le traitement en arrière-plan, le mettre en pause pour laisser thread principal pour retourner la réponse au navigateur, puis de reprendre la thread d'arrière-plan pour faire tout le traitement avec des appels de procédures stockées?

Suis-je raté quelque chose?

Quelqu'un pourrait-il me donner un idée de comment je peux résoudre ce problème? Serait très apprécié.

Je vous déconseillons d'essayer de s'accrocher à quelque chose comme le HTTP Contexte. Vous aurez évidemment besoin de quelque chose d'elle, donc passer tout ce qui est dans votre thread d'arrière-plan comme le fil de l'etat et de faire de votre traitement. Ce n'est pas seulement plus simple, mais par la définition de ce que votre fil besoins, vous mieux définir le but.

OriginalL'auteur Paul | 2014-07-18