begin process at 2012 02 13 04:10:54
  Trouver un code source :
 
dans
 
Accueil > Forum > 

ASP.NET

 > 

Web 2.0

 > 

cache et global.asax


Derniers messages déposésPoser une question dans le forum ou lancer une discussion

cache et global.asax

mercredi 22 novembre 2006 à 19:05:52 | cache et global.asax

SuperBouly

Membre Club

Bonjour,

Je travaille en ASP.NET 2 langageVB et VS2005

Je désire mettre en cache un dataset quand l'application démarre.
Dans Sub Application_Start je fais:

 

'1 je cree le dataset " MonDataSet"
------
Je passe les détails
-----
'2. Je le recopie dans un fichier Xml (Qui sera actualisé quand les données changent : pour ce cas, rarement), du répertoire "CacheXml"
MonDataSet.WriteXml(Server.MapPath("CacheXml/CacheMonDataSet.xml"))
'3. Je le mets en cache
Cache.Insert ("tarifs", dsTarifs, New CacheDependency(Server.MapPath("CacheXml/ CacheMonDataSet.xml"))) 
Eh bien cette instruction qui marchait parfaitement dans une page quelconque n'est pas autorisée dans le global.asax....
Je me la fait souligner en bleu avec le verdict :
Erreur  1          Une référence à un membre non partagé requiert une référence d'objet.   
Pourquoi ? et comment résoudre ce problème?


merci de vos lumières
@+Gilles
jeudi 23 novembre 2006 à 14:27:44 | Re : cache et global.asax

jcq

je crois que ça vient de ton Server.MapPath qui n'est pas autorisé dans le Global.asax... (pas le temps de mieux regardé en ce moment)

Bart-Rennes
jeudi 23 novembre 2006 à 15:51:21 | Re : cache et global.asax

SuperBouly

Membre Club

Server.MapPath marche parfaitement, j'en ai un juste avant qui fonctionne. c'est le cache.insert qui pose pb, mais tu as raison,  les arguments en posent peut-être un aussi..
@+Gilles
jeudi 23 novembre 2006 à 17:49:16 | Re : cache et global.asax

SuperBouly

Membre Club

Au secours, les théoriciens, je ne comprends pas l'erreur renvoyée !
 Une référence à un membre non partagé requiert une référence d'objet.   
une piste par pitié !
@+G

jeudi 23 novembre 2006 à 21:52:13 | Re : cache et global.asax

jesusonline

Membre Club Administrateur CodeS-SourceS
Réponse acceptée !
Salut,

Cache dans la page est une propriété de l'objet Page qui est une méthode type System.Web.Caching.Cache

dans global.asax, Cache est le type System.Web.Caching.Cache (mais pas une instance) or Insert n'est pas une méthode static (shared) mais une méthode d'instance donc il te faut une instance de l'objet Cache pour Insérer qqchose dans le cache.

Mais le code Global.asax est une instance de HttpApplication (j'ai un doute la mais je suis trop crevé pour vérifier :p) et dans cet objet tu as la méthode Context qui est une instance de HttpContext qui contient une propriété Cache qui est une instnce de ... (suspens) System.Web.Caching.Cache ... donc dans ton global.asax tu peux faire this.Context.Cache.Insert ... Le truc que je ne suis pas sur et que je me souviens plus quand cet objet est instancié l'évenement application_start est vraiment le tout début de l'application donc il se peut que cet objet soit pas encore instancié (mais je pense que oui)

En ce qui concerne le message d'erreur, ca vient du fait que tu appelles une méthode d'instance comme une méthode static


Cyril - MVS - MCP
vendredi 24 novembre 2006 à 07:41:59 | Re : cache et global.asax

SuperBouly

Membre Club

Bonjour
un grand merci pour ta réponse détaillée.
effectivement, en tête de la page de code du global.asax, il y a:

Public Class [Global]
    Inherits System.Web.HttpApplication

Comme je suis en VB j'ai mis Me.Context.Cache.Insert ...  et ça va bien.

A noter la soluce de rechange: Faire remplir le cache sur la première page avec la condition:
      if Ctype(Cache("tarifs"),DataSet) is Nothing then
            ---remplir le cache---
      end if

@+Gilles


Cette discussion est classée dans : xml, global, cache, asax, cachexml


Répondre à ce message

Sujets en rapport avec ce message

global.asax [ par psycomel ] Bonjour, y'a t il une différence entre le fichier global.asax et le fichier global.asa ????J'ai un probleme, dans mes recherches je voit partout qu'on Problème avec Global.asax sous Visual Studio 2005 [ par jerome_p ] Bonjour à tous, J'ai une application Web en C# développée avec Visual Studio 2003. Quand je l'ai l'importée sous Visual Studio 2005 et maintenant qua mon global.asax ne s'execute pas [ par laet99 ] bonjourj'ai besoin d'aide pour mon site intranet. j'ai fait un global.asax pour faire une action lors du session_onstart et onend mais rien en se pass session_end dans Global.asax.vb non détectée [ par fgansoinat ] Salut,Pour compter le nb de user connectés, je décrémente une variable 'application' à la fin de session :Global.asax.vb : Sub Session_End(ByVal se fichier global.asax [ par borgeomi ] borgeomibonjouuuuuuur !!!!!Sur mon poste  j'ai le message suivant lorsque j'essaie de lancer une application WEB avec un fichier global.asax"Le type d question sur global.asax [ par hay2006 ] en utilisant les variables de session et d'application , je les manipule directement sans toucher au fichier global.asax qui je n'ai pas compris l'uti Acceder aux variables de Global.asax [ par DarGuA ] bonsoir , j'aimerai bien savoir comment fair pour acceder aux variables Global.asax à partir de mon fichier default.aspx.vb :) par exemple lors de l'é [C#] [ASP.NET] Global.asax et ASP.NET 2005 [ par lmamine ] bonjour j'ai ajouter a mon projet asp.net 2005 un nouveau fichier Global.asax et j'ai implementé des des fonctions dedans mais le probleme que j'ai p Global.asax [ par Nicolas___ ] Bonjour, Dans le cadre de mon projet de fin d'études je dois réaliser une application en ASP.Net. J'utilise le framework 3.5. et le fichier Global. Session dans global asax [ par yesimes ] Bonjour, je voudrais savoir comment travailler avec une seule session dans un site en asp.net c'est a dire que lorsque l'utilisateur saisie son login


Nos sponsors


Sondage...

CalendriCode

Février 2012
LMMJVSD
  12345
6789101112
13141516171819
20212223242526
272829    

Consulter la suite du CalendriCode

Photothèque

 
Développement réalisé par Nicolas SOREL (Nix) avec l'aide de : Cyril DURAND et Emmanuel (EBArtSoft), Merci à Vincent pour ses précieux conseils.
CodeS-SourceS.com© Toute reproduction même partielle est interdite sauf accord écrit du Webmaster
CodeS-SourceS.com© est une marque déposée tous droits réservés

Google Coop CodeS-SourceS Google Coop CodeS-SourceS
Temps d'éxécution de la page : 5,070 sec (3)

Nous contacter | Annoncer sur CodeS-SourceS | Mentions légales