2009-08-17 7 views
0

Mon application Web expose quelques services (WCF) et j'ai besoin de charger un fichier XML et de le 'stocker' une variable statique visible pour l'AppDomain entier. Cette variable doit être interrogée et mise à jour à partir d'un service ou d'une page. Le problème est que je charge cette variable dans Application_Start (Global.asax.cs) mais quand une demande de service arrive, la variable est vide et doit être 'rechargée', et cela arrive avec chaque service (3), donc je me retrouve avec 3 instances d'une variable statique. Comment puis-je m'assurer que toutes mes applications s'exécutent sur le même AppDomain? Qu'est-ce que je fais mal?Partage de données via les services WCF et les pages ASPX

VS2008 SP1 case RTM Win7

+0

Je ne vois aucun moyen de le faire. Le service WCF ne sera pas dans le même AppDomain que l'application ASP.NET. –

+0

Selon le diagramme sur cette page, il est possible ... http://msdn.microsoft.com/en-us/library/aa702682.aspx – sebagomez

+0

Je ne savais pas cela. Quelle est la structure de votre application dans IIS? Une seule application? Tout le même pool d'applications? Peut-être ajouter un code de débogage qui affiche le AppDomain dans les trois services pour voir s'ils sont dans le même AppDomain ou non. –

Répondre

3

Ok, donc après un peu de recherche, j'ai trouvé la solution. Je posterai la solution ici et de nombreux liens qui m'ont aidé à le trouver. Les services WCF et les pages ASPX s'exécutent sur le même AppDomain lorsqu'ils sont exécutés côte à côte (par défaut), mon problème était que l'AppDomain était en cours de recyclage parce que mon application créait un dossier sous le dossier racine de mon application. Lorsque j'ai supprimé cette création de l'application elle-même, l'AppDomain a arrêté de redémarrer, donc je garde toujours mes valeurs statiques.

Voici une liste des post intéressant j'ai lu et aidé mon trouver la solution:

+0

grand article – Mike108

Questions connexes