begin process at 2010 02 10 02:23:47
  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 [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 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'é de uml vers xml a travers xslt [ par bochradhouib ] bonjour, je veux savoir,svp,comment passer d'un document.xmi vers un autre document .xml a travers un xslt.... Pouvez vous me donner un exemple,ça ser Changer le content type de text/xml vers "application/vnd.google-earth.kmz kmz" [ par Seb_d_angers ] Bonjour, Je cherche à afficher des info dans google earth avec une mise à jour périodique. Google earth sait très bien faire cela. Il va chercher un


Nos sponsors


Sondage...

Comparez les prix

CalendriCode

Février 2010
LMMJVSD
1234567
891011121314
15161718192021
22232425262728

Consulter la suite du CalendriCode

 
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 : 0,640 sec (4)

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