Il suffit de marquer la classe comme sérialisable (cf SerializableAttri bute)
et de stocker l'objet en session.
Exemple:
[Serializable]
public MaClasse
{
...
}
Puis dans le code
MaClasse monInstance = Session[objectID] as MaClasse;
if (monInstance == null)
{
monInstance = new MaClasse();
...
Session[objectID] = monInstance;
}
...
--
Benjamin Guinebertière
Microsoft France
Ce message est fourni en l'état, sans garantie d'aucune sorte, et ne vo us
confère aucun droit. Vous assumez tous les risques liés à son utili sation.
"fragmonster" wrote in message
news:
Bonjour,
y a t-il un moyen de créer un Objet persistent en .NET? Je souhaite en
fait conserver un objet "en vie" entre deux sessions. Je m'explique :
J'ai deux serveurs (A et B). Le serveur A (java) appelle une page via
un HttpURLConnection sur le serveur B (.net) qui ajoute des données
dans un object persistent et renvoie un ID unique vers A.
A reçoit donc cet ID en réponse puis fait un redirect HTTP vers une
autre page de B en lui passant cet ID dans l'url.
===> A cet instant je quitte le serveur A et j'arrive sur B
B, grâce à cet ID unique, est capable de retrouver les données dans
cet objet persistent.
En gros je voudrais éviter de passer par une base de données.
En fait, je suis en train de faire le portage d'une appli existente
Java/Webspere en .net et comme ils utilisent une servlet instanciée
une fois au démarrage de l'appli, cette persistente que je cherche a
reproduire est matérialisée par une variable statique (une hashtable
pour être précis). Or y a t-il un moyen en .net de faire la même
chose?
Il suffit de marquer la classe comme sérialisable (cf SerializableAttri bute)
et de stocker l'objet en session.
Exemple:
[Serializable]
public MaClasse
{
...
}
Puis dans le code
MaClasse monInstance = Session[objectID] as MaClasse;
if (monInstance == null)
{
monInstance = new MaClasse();
...
Session[objectID] = monInstance;
}
...
--
Benjamin Guinebertière
Microsoft France
Ce message est fourni en l'état, sans garantie d'aucune sorte, et ne vo us
confère aucun droit. Vous assumez tous les risques liés à son utili sation.
"fragmonster" <fmeriot@gmail.com> wrote in message
news:1158678041.070853.106570@h48g2000cwc.googlegroups.com...
Bonjour,
y a t-il un moyen de créer un Objet persistent en .NET? Je souhaite en
fait conserver un objet "en vie" entre deux sessions. Je m'explique :
J'ai deux serveurs (A et B). Le serveur A (java) appelle une page via
un HttpURLConnection sur le serveur B (.net) qui ajoute des données
dans un object persistent et renvoie un ID unique vers A.
A reçoit donc cet ID en réponse puis fait un redirect HTTP vers une
autre page de B en lui passant cet ID dans l'url.
===> A cet instant je quitte le serveur A et j'arrive sur B
B, grâce à cet ID unique, est capable de retrouver les données dans
cet objet persistent.
En gros je voudrais éviter de passer par une base de données.
En fait, je suis en train de faire le portage d'une appli existente
Java/Webspere en .net et comme ils utilisent une servlet instanciée
une fois au démarrage de l'appli, cette persistente que je cherche a
reproduire est matérialisée par une variable statique (une hashtable
pour être précis). Or y a t-il un moyen en .net de faire la même
chose?
Il suffit de marquer la classe comme sérialisable (cf SerializableAttri bute)
et de stocker l'objet en session.
Exemple:
[Serializable]
public MaClasse
{
...
}
Puis dans le code
MaClasse monInstance = Session[objectID] as MaClasse;
if (monInstance == null)
{
monInstance = new MaClasse();
...
Session[objectID] = monInstance;
}
...
--
Benjamin Guinebertière
Microsoft France
Ce message est fourni en l'état, sans garantie d'aucune sorte, et ne vo us
confère aucun droit. Vous assumez tous les risques liés à son utili sation.
"fragmonster" wrote in message
news:
Bonjour,
y a t-il un moyen de créer un Objet persistent en .NET? Je souhaite en
fait conserver un objet "en vie" entre deux sessions. Je m'explique :
J'ai deux serveurs (A et B). Le serveur A (java) appelle une page via
un HttpURLConnection sur le serveur B (.net) qui ajoute des données
dans un object persistent et renvoie un ID unique vers A.
A reçoit donc cet ID en réponse puis fait un redirect HTTP vers une
autre page de B en lui passant cet ID dans l'url.
===> A cet instant je quitte le serveur A et j'arrive sur B
B, grâce à cet ID unique, est capable de retrouver les données dans
cet objet persistent.
En gros je voudrais éviter de passer par une base de données.
En fait, je suis en train de faire le portage d'une appli existente
Java/Webspere en .net et comme ils utilisent une servlet instanciée
une fois au démarrage de l'appli, cette persistente que je cherche a
reproduire est matérialisée par une variable statique (une hashtable
pour être précis). Or y a t-il un moyen en .net de faire la même
chose?
Il suffit de marquer la classe comme sérialisable (cf
SerializableAttribute)
et de stocker l'objet en session.
Exemple:
[Serializable]
public MaClasse
{
...
}
Puis dans le code
MaClasse monInstance = Session[objectID] as MaClasse;
if (monInstance == null)
{
monInstance = new MaClasse();
...
Session[objectID] = monInstance;
}
...
--
Benjamin Guinebertière
Microsoft France
Ce message est fourni en l'état, sans garantie d'aucune sorte, et ne vous
confère aucun droit. Vous assumez tous les risques liés à son utilisation.
"fragmonster" wrote in message
news:
Bonjour,
y a t-il un moyen de créer un Objet persistent en .NET? Je souhaite en
fait conserver un objet "en vie" entre deux sessions. Je m'explique :
J'ai deux serveurs (A et B). Le serveur A (java) appelle une page via
un HttpURLConnection sur le serveur B (.net) qui ajoute des données
dans un object persistent et renvoie un ID unique vers A.
A reçoit donc cet ID en réponse puis fait un redirect HTTP vers une
autre page de B en lui passant cet ID dans l'url.
===> A cet instant je quitte le serveur A et j'arrive sur B
B, grâce à cet ID unique, est capable de retrouver les données dans
cet objet persistent.
En gros je voudrais éviter de passer par une base de données.
En fait, je suis en train de faire le portage d'une appli existente
Java/Webspere en .net et comme ils utilisent une servlet instanciée
une fois au démarrage de l'appli, cette persistente que je cherche a
reproduire est matérialisée par une variable statique (une hashtable
pour être précis). Or y a t-il un moyen en .net de faire la même
chose?
Il suffit de marquer la classe comme sérialisable (cf
SerializableAttribute)
et de stocker l'objet en session.
Exemple:
[Serializable]
public MaClasse
{
...
}
Puis dans le code
MaClasse monInstance = Session[objectID] as MaClasse;
if (monInstance == null)
{
monInstance = new MaClasse();
...
Session[objectID] = monInstance;
}
...
--
Benjamin Guinebertière
Microsoft France
Ce message est fourni en l'état, sans garantie d'aucune sorte, et ne vous
confère aucun droit. Vous assumez tous les risques liés à son utilisation.
"fragmonster" <fmeriot@gmail.com> wrote in message
news:1158678041.070853.106570@h48g2000cwc.googlegroups.com...
Bonjour,
y a t-il un moyen de créer un Objet persistent en .NET? Je souhaite en
fait conserver un objet "en vie" entre deux sessions. Je m'explique :
J'ai deux serveurs (A et B). Le serveur A (java) appelle une page via
un HttpURLConnection sur le serveur B (.net) qui ajoute des données
dans un object persistent et renvoie un ID unique vers A.
A reçoit donc cet ID en réponse puis fait un redirect HTTP vers une
autre page de B en lui passant cet ID dans l'url.
===> A cet instant je quitte le serveur A et j'arrive sur B
B, grâce à cet ID unique, est capable de retrouver les données dans
cet objet persistent.
En gros je voudrais éviter de passer par une base de données.
En fait, je suis en train de faire le portage d'une appli existente
Java/Webspere en .net et comme ils utilisent une servlet instanciée
une fois au démarrage de l'appli, cette persistente que je cherche a
reproduire est matérialisée par une variable statique (une hashtable
pour être précis). Or y a t-il un moyen en .net de faire la même
chose?
Il suffit de marquer la classe comme sérialisable (cf
SerializableAttribute)
et de stocker l'objet en session.
Exemple:
[Serializable]
public MaClasse
{
...
}
Puis dans le code
MaClasse monInstance = Session[objectID] as MaClasse;
if (monInstance == null)
{
monInstance = new MaClasse();
...
Session[objectID] = monInstance;
}
...
--
Benjamin Guinebertière
Microsoft France
Ce message est fourni en l'état, sans garantie d'aucune sorte, et ne vous
confère aucun droit. Vous assumez tous les risques liés à son utilisation.
"fragmonster" wrote in message
news:
Bonjour,
y a t-il un moyen de créer un Objet persistent en .NET? Je souhaite en
fait conserver un objet "en vie" entre deux sessions. Je m'explique :
J'ai deux serveurs (A et B). Le serveur A (java) appelle une page via
un HttpURLConnection sur le serveur B (.net) qui ajoute des données
dans un object persistent et renvoie un ID unique vers A.
A reçoit donc cet ID en réponse puis fait un redirect HTTP vers une
autre page de B en lui passant cet ID dans l'url.
===> A cet instant je quitte le serveur A et j'arrive sur B
B, grâce à cet ID unique, est capable de retrouver les données dans
cet objet persistent.
En gros je voudrais éviter de passer par une base de données.
En fait, je suis en train de faire le portage d'une appli existente
Java/Webspere en .net et comme ils utilisent une servlet instanciée
une fois au démarrage de l'appli, cette persistente que je cherche a
reproduire est matérialisée par une variable statique (une hashtable
pour être précis). Or y a t-il un moyen en .net de faire la même
chose?
Pour passer l'objet du serveur A vers le serveur B, vous pouvez utiliser la
sérialisation XML par exemple
cf http://msdn2.microsoft.com/fr-fr/library/182eeyhh.aspx
Cordialement
--
Benjamin Guinebertière
Microsoft France
Ce message est fourni en l'état, sans garantie d'aucune sorte, et ne vous
confère aucun droit. Vous assumez tous les risques liés à son utilisation.
"fragmonster" wrote in message
news:
Ca ne marche pas car lorsque je crée mon objet sur le serveur B depuis
le serveur A, je suis dans une session du serveur A. Ensuite, je quitte
le serveur A pour aller sur le serveur B (donc j'ouvre une nouvelle
session sur B) et je ne peux plus accèder à l'objet que je viens de
créer (même si celui ci doit toujours être présent en mémoire
qque part).
Benjamin Guinebertière [MS] wrote:
> Il suffit de marquer la classe comme sérialisable (cf
> SerializableAttribute)
> et de stocker l'objet en session.
>
> Exemple:
>
> [Serializable]
> public MaClasse
> {
> ...
> }
>
>
> Puis dans le code
> MaClasse monInstance = Session[objectID] as MaClasse;
> if (monInstance == null)
> {
> monInstance = new MaClasse();
> ...
> Session[objectID] = monInstance;
> }
> ...
>
>
>
> --
> Benjamin Guinebertière
> Microsoft France
>
> Ce message est fourni en l'état, sans garantie d'aucune sorte, et ne vous
> confère aucun droit. Vous assumez tous les risques liés à son utilisation.
>
>
>
>
> "fragmonster" wrote in message
> news:
> Bonjour,
> y a t-il un moyen de créer un Objet persistent en .NET? Je souhaite en
> fait conserver un objet "en vie" entre deux sessions. Je m'explique :
>
> J'ai deux serveurs (A et B). Le serveur A (java) appelle une page via
> un HttpURLConnection sur le serveur B (.net) qui ajoute des données
> dans un object persistent et renvoie un ID unique vers A.
>
> A reçoit donc cet ID en réponse puis fait un redirect HTTP vers une
> autre page de B en lui passant cet ID dans l'url.
>
> ===> A cet instant je quitte le serveur A et j'arrive sur B
>
> B, grâce à cet ID unique, est capable de retrouver les données dans
> cet objet persistent.
>
>
> En gros je voudrais éviter de passer par une base de données.
>
>
>
> En fait, je suis en train de faire le portage d'une appli existente
> Java/Webspere en .net et comme ils utilisent une servlet instanciée
> une fois au démarrage de l'appli, cette persistente que je cherche a
> reproduire est matérialisée par une variable statique (une hashtable
> pour être précis). Or y a t-il un moyen en .net de faire la même
> chose?
Pour passer l'objet du serveur A vers le serveur B, vous pouvez utiliser la
sérialisation XML par exemple
cf http://msdn2.microsoft.com/fr-fr/library/182eeyhh.aspx
Cordialement
--
Benjamin Guinebertière
Microsoft France
Ce message est fourni en l'état, sans garantie d'aucune sorte, et ne vous
confère aucun droit. Vous assumez tous les risques liés à son utilisation.
"fragmonster" <fmeriot@gmail.com> wrote in message
news:1158734723.310543.24340@e3g2000cwe.googlegroups.com...
Ca ne marche pas car lorsque je crée mon objet sur le serveur B depuis
le serveur A, je suis dans une session du serveur A. Ensuite, je quitte
le serveur A pour aller sur le serveur B (donc j'ouvre une nouvelle
session sur B) et je ne peux plus accèder à l'objet que je viens de
créer (même si celui ci doit toujours être présent en mémoire
qque part).
Benjamin Guinebertière [MS] wrote:
> Il suffit de marquer la classe comme sérialisable (cf
> SerializableAttribute)
> et de stocker l'objet en session.
>
> Exemple:
>
> [Serializable]
> public MaClasse
> {
> ...
> }
>
>
> Puis dans le code
> MaClasse monInstance = Session[objectID] as MaClasse;
> if (monInstance == null)
> {
> monInstance = new MaClasse();
> ...
> Session[objectID] = monInstance;
> }
> ...
>
>
>
> --
> Benjamin Guinebertière
> Microsoft France
>
> Ce message est fourni en l'état, sans garantie d'aucune sorte, et ne vous
> confère aucun droit. Vous assumez tous les risques liés à son utilisation.
>
>
>
>
> "fragmonster" <fmeriot@gmail.com> wrote in message
> news:1158678041.070853.106570@h48g2000cwc.googlegroups.com...
> Bonjour,
> y a t-il un moyen de créer un Objet persistent en .NET? Je souhaite en
> fait conserver un objet "en vie" entre deux sessions. Je m'explique :
>
> J'ai deux serveurs (A et B). Le serveur A (java) appelle une page via
> un HttpURLConnection sur le serveur B (.net) qui ajoute des données
> dans un object persistent et renvoie un ID unique vers A.
>
> A reçoit donc cet ID en réponse puis fait un redirect HTTP vers une
> autre page de B en lui passant cet ID dans l'url.
>
> ===> A cet instant je quitte le serveur A et j'arrive sur B
>
> B, grâce à cet ID unique, est capable de retrouver les données dans
> cet objet persistent.
>
>
> En gros je voudrais éviter de passer par une base de données.
>
>
>
> En fait, je suis en train de faire le portage d'une appli existente
> Java/Webspere en .net et comme ils utilisent une servlet instanciée
> une fois au démarrage de l'appli, cette persistente que je cherche a
> reproduire est matérialisée par une variable statique (une hashtable
> pour être précis). Or y a t-il un moyen en .net de faire la même
> chose?
Pour passer l'objet du serveur A vers le serveur B, vous pouvez utiliser la
sérialisation XML par exemple
cf http://msdn2.microsoft.com/fr-fr/library/182eeyhh.aspx
Cordialement
--
Benjamin Guinebertière
Microsoft France
Ce message est fourni en l'état, sans garantie d'aucune sorte, et ne vous
confère aucun droit. Vous assumez tous les risques liés à son utilisation.
"fragmonster" wrote in message
news:
Ca ne marche pas car lorsque je crée mon objet sur le serveur B depuis
le serveur A, je suis dans une session du serveur A. Ensuite, je quitte
le serveur A pour aller sur le serveur B (donc j'ouvre une nouvelle
session sur B) et je ne peux plus accèder à l'objet que je viens de
créer (même si celui ci doit toujours être présent en mémoire
qque part).
Benjamin Guinebertière [MS] wrote:
> Il suffit de marquer la classe comme sérialisable (cf
> SerializableAttribute)
> et de stocker l'objet en session.
>
> Exemple:
>
> [Serializable]
> public MaClasse
> {
> ...
> }
>
>
> Puis dans le code
> MaClasse monInstance = Session[objectID] as MaClasse;
> if (monInstance == null)
> {
> monInstance = new MaClasse();
> ...
> Session[objectID] = monInstance;
> }
> ...
>
>
>
> --
> Benjamin Guinebertière
> Microsoft France
>
> Ce message est fourni en l'état, sans garantie d'aucune sorte, et ne vous
> confère aucun droit. Vous assumez tous les risques liés à son utilisation.
>
>
>
>
> "fragmonster" wrote in message
> news:
> Bonjour,
> y a t-il un moyen de créer un Objet persistent en .NET? Je souhaite en
> fait conserver un objet "en vie" entre deux sessions. Je m'explique :
>
> J'ai deux serveurs (A et B). Le serveur A (java) appelle une page via
> un HttpURLConnection sur le serveur B (.net) qui ajoute des données
> dans un object persistent et renvoie un ID unique vers A.
>
> A reçoit donc cet ID en réponse puis fait un redirect HTTP vers une
> autre page de B en lui passant cet ID dans l'url.
>
> ===> A cet instant je quitte le serveur A et j'arrive sur B
>
> B, grâce à cet ID unique, est capable de retrouver les données dans
> cet objet persistent.
>
>
> En gros je voudrais éviter de passer par une base de données.
>
>
>
> En fait, je suis en train de faire le portage d'une appli existente
> Java/Webspere en .net et comme ils utilisent une servlet instanciée
> une fois au démarrage de l'appli, cette persistente que je cherche a
> reproduire est matérialisée par une variable statique (une hashtable
> pour être précis). Or y a t-il un moyen en .net de faire la même
> chose?
Bonjour,
Si vous êtes dans un contexte web, vous pouvez utiliser le cache plutôt
que
la session ce qui devrait résoudre vos problèmes.
--
arno - http://www.dotnetguru2.org/acleret/
"Benjamin Guinebertière [MS]" a écrit :Pour passer l'objet du serveur A vers le serveur B, vous pouvez utiliser
la
sérialisation XML par exemple
cf http://msdn2.microsoft.com/fr-fr/library/182eeyhh.aspx
Cordialement
--
Benjamin Guinebertière
Microsoft France
Ce message est fourni en l'état, sans garantie d'aucune sorte, et ne vous
confère aucun droit. Vous assumez tous les risques liés à son
utilisation.
"fragmonster" wrote in message
news:
Ca ne marche pas car lorsque je crée mon objet sur le serveur B depuis
le serveur A, je suis dans une session du serveur A. Ensuite, je quitte
le serveur A pour aller sur le serveur B (donc j'ouvre une nouvelle
session sur B) et je ne peux plus accèder à l'objet que je viens de
créer (même si celui ci doit toujours être présent en mémoire
qque part).
Benjamin Guinebertière [MS] wrote:
> Il suffit de marquer la classe comme sérialisable (cf
> SerializableAttribute)
> et de stocker l'objet en session.
>
> Exemple:
>
> [Serializable]
> public MaClasse
> {
> ...
> }
>
>
> Puis dans le code
> MaClasse monInstance = Session[objectID] as MaClasse;
> if (monInstance == null)
> {
> monInstance = new MaClasse();
> ...
> Session[objectID] = monInstance;
> }
> ...
>
>
>
> --
> Benjamin Guinebertière
> Microsoft France
>
> Ce message est fourni en l'état, sans garantie d'aucune sorte, et ne
> vous
> confère aucun droit. Vous assumez tous les risques liés à son
> utilisation.
>
>
>
>
> "fragmonster" wrote in message
> news:
> Bonjour,
> y a t-il un moyen de créer un Objet persistent en .NET? Je souhaite en
> fait conserver un objet "en vie" entre deux sessions. Je m'explique :
>
> J'ai deux serveurs (A et B). Le serveur A (java) appelle une page via
> un HttpURLConnection sur le serveur B (.net) qui ajoute des données
> dans un object persistent et renvoie un ID unique vers A.
>
> A reçoit donc cet ID en réponse puis fait un redirect HTTP vers une
> autre page de B en lui passant cet ID dans l'url.
>
> ===> A cet instant je quitte le serveur A et j'arrive sur B
>
> B, grâce à cet ID unique, est capable de retrouver les données dans
> cet objet persistent.
>
>
> En gros je voudrais éviter de passer par une base de données.
>
>
>
> En fait, je suis en train de faire le portage d'une appli existente
> Java/Webspere en .net et comme ils utilisent une servlet instanciée
> une fois au démarrage de l'appli, cette persistente que je cherche a
> reproduire est matérialisée par une variable statique (une hashtable
> pour être précis). Or y a t-il un moyen en .net de faire la même
> chose?
Bonjour,
Si vous êtes dans un contexte web, vous pouvez utiliser le cache plutôt
que
la session ce qui devrait résoudre vos problèmes.
--
arno - http://www.dotnetguru2.org/acleret/
"Benjamin Guinebertière [MS]" a écrit :
Pour passer l'objet du serveur A vers le serveur B, vous pouvez utiliser
la
sérialisation XML par exemple
cf http://msdn2.microsoft.com/fr-fr/library/182eeyhh.aspx
Cordialement
--
Benjamin Guinebertière
Microsoft France
Ce message est fourni en l'état, sans garantie d'aucune sorte, et ne vous
confère aucun droit. Vous assumez tous les risques liés à son
utilisation.
"fragmonster" <fmeriot@gmail.com> wrote in message
news:1158734723.310543.24340@e3g2000cwe.googlegroups.com...
Ca ne marche pas car lorsque je crée mon objet sur le serveur B depuis
le serveur A, je suis dans une session du serveur A. Ensuite, je quitte
le serveur A pour aller sur le serveur B (donc j'ouvre une nouvelle
session sur B) et je ne peux plus accèder à l'objet que je viens de
créer (même si celui ci doit toujours être présent en mémoire
qque part).
Benjamin Guinebertière [MS] wrote:
> Il suffit de marquer la classe comme sérialisable (cf
> SerializableAttribute)
> et de stocker l'objet en session.
>
> Exemple:
>
> [Serializable]
> public MaClasse
> {
> ...
> }
>
>
> Puis dans le code
> MaClasse monInstance = Session[objectID] as MaClasse;
> if (monInstance == null)
> {
> monInstance = new MaClasse();
> ...
> Session[objectID] = monInstance;
> }
> ...
>
>
>
> --
> Benjamin Guinebertière
> Microsoft France
>
> Ce message est fourni en l'état, sans garantie d'aucune sorte, et ne
> vous
> confère aucun droit. Vous assumez tous les risques liés à son
> utilisation.
>
>
>
>
> "fragmonster" <fmeriot@gmail.com> wrote in message
> news:1158678041.070853.106570@h48g2000cwc.googlegroups.com...
> Bonjour,
> y a t-il un moyen de créer un Objet persistent en .NET? Je souhaite en
> fait conserver un objet "en vie" entre deux sessions. Je m'explique :
>
> J'ai deux serveurs (A et B). Le serveur A (java) appelle une page via
> un HttpURLConnection sur le serveur B (.net) qui ajoute des données
> dans un object persistent et renvoie un ID unique vers A.
>
> A reçoit donc cet ID en réponse puis fait un redirect HTTP vers une
> autre page de B en lui passant cet ID dans l'url.
>
> ===> A cet instant je quitte le serveur A et j'arrive sur B
>
> B, grâce à cet ID unique, est capable de retrouver les données dans
> cet objet persistent.
>
>
> En gros je voudrais éviter de passer par une base de données.
>
>
>
> En fait, je suis en train de faire le portage d'une appli existente
> Java/Webspere en .net et comme ils utilisent une servlet instanciée
> une fois au démarrage de l'appli, cette persistente que je cherche a
> reproduire est matérialisée par une variable statique (une hashtable
> pour être précis). Or y a t-il un moyen en .net de faire la même
> chose?
Bonjour,
Si vous êtes dans un contexte web, vous pouvez utiliser le cache plutôt
que
la session ce qui devrait résoudre vos problèmes.
--
arno - http://www.dotnetguru2.org/acleret/
"Benjamin Guinebertière [MS]" a écrit :Pour passer l'objet du serveur A vers le serveur B, vous pouvez utiliser
la
sérialisation XML par exemple
cf http://msdn2.microsoft.com/fr-fr/library/182eeyhh.aspx
Cordialement
--
Benjamin Guinebertière
Microsoft France
Ce message est fourni en l'état, sans garantie d'aucune sorte, et ne vous
confère aucun droit. Vous assumez tous les risques liés à son
utilisation.
"fragmonster" wrote in message
news:
Ca ne marche pas car lorsque je crée mon objet sur le serveur B depuis
le serveur A, je suis dans une session du serveur A. Ensuite, je quitte
le serveur A pour aller sur le serveur B (donc j'ouvre une nouvelle
session sur B) et je ne peux plus accèder à l'objet que je viens de
créer (même si celui ci doit toujours être présent en mémoire
qque part).
Benjamin Guinebertière [MS] wrote:
> Il suffit de marquer la classe comme sérialisable (cf
> SerializableAttribute)
> et de stocker l'objet en session.
>
> Exemple:
>
> [Serializable]
> public MaClasse
> {
> ...
> }
>
>
> Puis dans le code
> MaClasse monInstance = Session[objectID] as MaClasse;
> if (monInstance == null)
> {
> monInstance = new MaClasse();
> ...
> Session[objectID] = monInstance;
> }
> ...
>
>
>
> --
> Benjamin Guinebertière
> Microsoft France
>
> Ce message est fourni en l'état, sans garantie d'aucune sorte, et ne
> vous
> confère aucun droit. Vous assumez tous les risques liés à son
> utilisation.
>
>
>
>
> "fragmonster" wrote in message
> news:
> Bonjour,
> y a t-il un moyen de créer un Objet persistent en .NET? Je souhaite en
> fait conserver un objet "en vie" entre deux sessions. Je m'explique :
>
> J'ai deux serveurs (A et B). Le serveur A (java) appelle une page via
> un HttpURLConnection sur le serveur B (.net) qui ajoute des données
> dans un object persistent et renvoie un ID unique vers A.
>
> A reçoit donc cet ID en réponse puis fait un redirect HTTP vers une
> autre page de B en lui passant cet ID dans l'url.
>
> ===> A cet instant je quitte le serveur A et j'arrive sur B
>
> B, grâce à cet ID unique, est capable de retrouver les données dans
> cet objet persistent.
>
>
> En gros je voudrais éviter de passer par une base de données.
>
>
>
> En fait, je suis en train de faire le portage d'une appli existente
> Java/Webspere en .net et comme ils utilisent une servlet instanciée
> une fois au démarrage de l'appli, cette persistente que je cherche a
> reproduire est matérialisée par une variable statique (une hashtable
> pour être précis). Or y a t-il un moyen en .net de faire la même
> chose?
ATTENTION,
Le cache et la session ont des buts très différents au niveau de la session.
- La session est là pour gérer l'état d'une application Web
- Le cache est là pour accélérer l'application en retenant en mémoire des
pages toutes faites, ou des résultats de requêtes etc. D'un point de vue
théorique, il faut s'attendre en programmant à ce que le cache puisse être
vidé (par le système) s'il y a une trop grande pression mémoire (en effet,
pour la performance, il peut être plus intéressant de libérer du cache et
disposer de plus de mémoire pour les traitements).
Pour résumer, tout ce qui est mis en cache doit pouvoir être reconstruit.
De plus, la session peut être stockée en mémoire (mode par défaut), dans un
service Windows à part, ou dans SQL Server, et ce par simple configuration.
Sur le problème original, le but est de passer un objet d'un serveur Web A
vers un serveur B puis de nouveau vers le serveur A. Le cache ne me semble
pas aider dans ce cas précis car il est géré en mémoire sur chaque serveur.
--
Benjamin Guinebertière
Microsoft France
Ce message est fourni en l'état, sans garantie d'aucune sorte, et ne vous
confère aucun droit. Vous assumez tous les risques liés à son utilisation.
"Arnaud CLERET" wrote in message
news:
> Bonjour,
>
> Si vous êtes dans un contexte web, vous pouvez utiliser le cache plutôt
> que
> la session ce qui devrait résoudre vos problèmes.
>
> --
> arno - http://www.dotnetguru2.org/acleret/
>
>
> "Benjamin Guinebertière [MS]" a écrit :
>
>> Pour passer l'objet du serveur A vers le serveur B, vous pouvez utiliser
>> la
>> sérialisation XML par exemple
>>
>> cf http://msdn2.microsoft.com/fr-fr/library/182eeyhh.aspx
>>
>> Cordialement
>>
>>
>> --
>> Benjamin Guinebertière
>> Microsoft France
>>
>> Ce message est fourni en l'état, sans garantie d'aucune sorte, et ne vous
>> confère aucun droit. Vous assumez tous les risques liés à son
>> utilisation.
>>
>>
>>
>>
>> "fragmonster" wrote in message
>> news:
>> Ca ne marche pas car lorsque je crée mon objet sur le serveur B depuis
>> le serveur A, je suis dans une session du serveur A. Ensuite, je quitte
>> le serveur A pour aller sur le serveur B (donc j'ouvre une nouvelle
>> session sur B) et je ne peux plus accèder à l'objet que je viens de
>> créer (même si celui ci doit toujours être présent en mémoire
>> qque part).
>>
>> Benjamin Guinebertière [MS] wrote:
>> > Il suffit de marquer la classe comme sérialisable (cf
>> > SerializableAttribute)
>> > et de stocker l'objet en session.
>> >
>> > Exemple:
>> >
>> > [Serializable]
>> > public MaClasse
>> > {
>> > ...
>> > }
>> >
>> >
>> > Puis dans le code
>> > MaClasse monInstance = Session[objectID] as MaClasse;
>> > if (monInstance == null)
>> > {
>> > monInstance = new MaClasse();
>> > ...
>> > Session[objectID] = monInstance;
>> > }
>> > ...
>> >
>> >
>> >
>> > --
>> > Benjamin Guinebertière
>> > Microsoft France
>> >
>> > Ce message est fourni en l'état, sans garantie d'aucune sorte, et ne
>> > vous
>> > confère aucun droit. Vous assumez tous les risques liés à son
>> > utilisation.
>> >
>> >
>> >
>> >
>> > "fragmonster" wrote in message
>> > news:
>> > Bonjour,
>> > y a t-il un moyen de créer un Objet persistent en .NET? Je souhaite en
>> > fait conserver un objet "en vie" entre deux sessions. Je m'explique :
>> >
>> > J'ai deux serveurs (A et B). Le serveur A (java) appelle une page via
>> > un HttpURLConnection sur le serveur B (.net) qui ajoute des données
>> > dans un object persistent et renvoie un ID unique vers A.
>> >
>> > A reçoit donc cet ID en réponse puis fait un redirect HTTP vers une
>> > autre page de B en lui passant cet ID dans l'url.
>> >
>> > ===> A cet instant je quitte le serveur A et j'arrive sur B
>> >
>> > B, grâce à cet ID unique, est capable de retrouver les données dans
>> > cet objet persistent.
>> >
>> >
>> > En gros je voudrais éviter de passer par une base de données.
>> >
>> >
>> >
>> > En fait, je suis en train de faire le portage d'une appli existente
>> > Java/Webspere en .net et comme ils utilisent une servlet instanciée
>> > une fois au démarrage de l'appli, cette persistente que je cherche a
>> > reproduire est matérialisée par une variable statique (une hashtable
>> > pour être précis). Or y a t-il un moyen en .net de faire la même
>> > chose?
>>
>>
>>
ATTENTION,
Le cache et la session ont des buts très différents au niveau de la session.
- La session est là pour gérer l'état d'une application Web
- Le cache est là pour accélérer l'application en retenant en mémoire des
pages toutes faites, ou des résultats de requêtes etc. D'un point de vue
théorique, il faut s'attendre en programmant à ce que le cache puisse être
vidé (par le système) s'il y a une trop grande pression mémoire (en effet,
pour la performance, il peut être plus intéressant de libérer du cache et
disposer de plus de mémoire pour les traitements).
Pour résumer, tout ce qui est mis en cache doit pouvoir être reconstruit.
De plus, la session peut être stockée en mémoire (mode par défaut), dans un
service Windows à part, ou dans SQL Server, et ce par simple configuration.
Sur le problème original, le but est de passer un objet d'un serveur Web A
vers un serveur B puis de nouveau vers le serveur A. Le cache ne me semble
pas aider dans ce cas précis car il est géré en mémoire sur chaque serveur.
--
Benjamin Guinebertière
Microsoft France
Ce message est fourni en l'état, sans garantie d'aucune sorte, et ne vous
confère aucun droit. Vous assumez tous les risques liés à son utilisation.
"Arnaud CLERET" <arnaudcleret@msn.antispam.com> wrote in message
news:148121E6-415D-4309-B29F-5AAFF1E8E27B@microsoft.com...
> Bonjour,
>
> Si vous êtes dans un contexte web, vous pouvez utiliser le cache plutôt
> que
> la session ce qui devrait résoudre vos problèmes.
>
> --
> arno - http://www.dotnetguru2.org/acleret/
>
>
> "Benjamin Guinebertière [MS]" a écrit :
>
>> Pour passer l'objet du serveur A vers le serveur B, vous pouvez utiliser
>> la
>> sérialisation XML par exemple
>>
>> cf http://msdn2.microsoft.com/fr-fr/library/182eeyhh.aspx
>>
>> Cordialement
>>
>>
>> --
>> Benjamin Guinebertière
>> Microsoft France
>>
>> Ce message est fourni en l'état, sans garantie d'aucune sorte, et ne vous
>> confère aucun droit. Vous assumez tous les risques liés à son
>> utilisation.
>>
>>
>>
>>
>> "fragmonster" <fmeriot@gmail.com> wrote in message
>> news:1158734723.310543.24340@e3g2000cwe.googlegroups.com...
>> Ca ne marche pas car lorsque je crée mon objet sur le serveur B depuis
>> le serveur A, je suis dans une session du serveur A. Ensuite, je quitte
>> le serveur A pour aller sur le serveur B (donc j'ouvre une nouvelle
>> session sur B) et je ne peux plus accèder à l'objet que je viens de
>> créer (même si celui ci doit toujours être présent en mémoire
>> qque part).
>>
>> Benjamin Guinebertière [MS] wrote:
>> > Il suffit de marquer la classe comme sérialisable (cf
>> > SerializableAttribute)
>> > et de stocker l'objet en session.
>> >
>> > Exemple:
>> >
>> > [Serializable]
>> > public MaClasse
>> > {
>> > ...
>> > }
>> >
>> >
>> > Puis dans le code
>> > MaClasse monInstance = Session[objectID] as MaClasse;
>> > if (monInstance == null)
>> > {
>> > monInstance = new MaClasse();
>> > ...
>> > Session[objectID] = monInstance;
>> > }
>> > ...
>> >
>> >
>> >
>> > --
>> > Benjamin Guinebertière
>> > Microsoft France
>> >
>> > Ce message est fourni en l'état, sans garantie d'aucune sorte, et ne
>> > vous
>> > confère aucun droit. Vous assumez tous les risques liés à son
>> > utilisation.
>> >
>> >
>> >
>> >
>> > "fragmonster" <fmeriot@gmail.com> wrote in message
>> > news:1158678041.070853.106570@h48g2000cwc.googlegroups.com...
>> > Bonjour,
>> > y a t-il un moyen de créer un Objet persistent en .NET? Je souhaite en
>> > fait conserver un objet "en vie" entre deux sessions. Je m'explique :
>> >
>> > J'ai deux serveurs (A et B). Le serveur A (java) appelle une page via
>> > un HttpURLConnection sur le serveur B (.net) qui ajoute des données
>> > dans un object persistent et renvoie un ID unique vers A.
>> >
>> > A reçoit donc cet ID en réponse puis fait un redirect HTTP vers une
>> > autre page de B en lui passant cet ID dans l'url.
>> >
>> > ===> A cet instant je quitte le serveur A et j'arrive sur B
>> >
>> > B, grâce à cet ID unique, est capable de retrouver les données dans
>> > cet objet persistent.
>> >
>> >
>> > En gros je voudrais éviter de passer par une base de données.
>> >
>> >
>> >
>> > En fait, je suis en train de faire le portage d'une appli existente
>> > Java/Webspere en .net et comme ils utilisent une servlet instanciée
>> > une fois au démarrage de l'appli, cette persistente que je cherche a
>> > reproduire est matérialisée par une variable statique (une hashtable
>> > pour être précis). Or y a t-il un moyen en .net de faire la même
>> > chose?
>>
>>
>>
ATTENTION,
Le cache et la session ont des buts très différents au niveau de la session.
- La session est là pour gérer l'état d'une application Web
- Le cache est là pour accélérer l'application en retenant en mémoire des
pages toutes faites, ou des résultats de requêtes etc. D'un point de vue
théorique, il faut s'attendre en programmant à ce que le cache puisse être
vidé (par le système) s'il y a une trop grande pression mémoire (en effet,
pour la performance, il peut être plus intéressant de libérer du cache et
disposer de plus de mémoire pour les traitements).
Pour résumer, tout ce qui est mis en cache doit pouvoir être reconstruit.
De plus, la session peut être stockée en mémoire (mode par défaut), dans un
service Windows à part, ou dans SQL Server, et ce par simple configuration.
Sur le problème original, le but est de passer un objet d'un serveur Web A
vers un serveur B puis de nouveau vers le serveur A. Le cache ne me semble
pas aider dans ce cas précis car il est géré en mémoire sur chaque serveur.
--
Benjamin Guinebertière
Microsoft France
Ce message est fourni en l'état, sans garantie d'aucune sorte, et ne vous
confère aucun droit. Vous assumez tous les risques liés à son utilisation.
"Arnaud CLERET" wrote in message
news:
> Bonjour,
>
> Si vous êtes dans un contexte web, vous pouvez utiliser le cache plutôt
> que
> la session ce qui devrait résoudre vos problèmes.
>
> --
> arno - http://www.dotnetguru2.org/acleret/
>
>
> "Benjamin Guinebertière [MS]" a écrit :
>
>> Pour passer l'objet du serveur A vers le serveur B, vous pouvez utiliser
>> la
>> sérialisation XML par exemple
>>
>> cf http://msdn2.microsoft.com/fr-fr/library/182eeyhh.aspx
>>
>> Cordialement
>>
>>
>> --
>> Benjamin Guinebertière
>> Microsoft France
>>
>> Ce message est fourni en l'état, sans garantie d'aucune sorte, et ne vous
>> confère aucun droit. Vous assumez tous les risques liés à son
>> utilisation.
>>
>>
>>
>>
>> "fragmonster" wrote in message
>> news:
>> Ca ne marche pas car lorsque je crée mon objet sur le serveur B depuis
>> le serveur A, je suis dans une session du serveur A. Ensuite, je quitte
>> le serveur A pour aller sur le serveur B (donc j'ouvre une nouvelle
>> session sur B) et je ne peux plus accèder à l'objet que je viens de
>> créer (même si celui ci doit toujours être présent en mémoire
>> qque part).
>>
>> Benjamin Guinebertière [MS] wrote:
>> > Il suffit de marquer la classe comme sérialisable (cf
>> > SerializableAttribute)
>> > et de stocker l'objet en session.
>> >
>> > Exemple:
>> >
>> > [Serializable]
>> > public MaClasse
>> > {
>> > ...
>> > }
>> >
>> >
>> > Puis dans le code
>> > MaClasse monInstance = Session[objectID] as MaClasse;
>> > if (monInstance == null)
>> > {
>> > monInstance = new MaClasse();
>> > ...
>> > Session[objectID] = monInstance;
>> > }
>> > ...
>> >
>> >
>> >
>> > --
>> > Benjamin Guinebertière
>> > Microsoft France
>> >
>> > Ce message est fourni en l'état, sans garantie d'aucune sorte, et ne
>> > vous
>> > confère aucun droit. Vous assumez tous les risques liés à son
>> > utilisation.
>> >
>> >
>> >
>> >
>> > "fragmonster" wrote in message
>> > news:
>> > Bonjour,
>> > y a t-il un moyen de créer un Objet persistent en .NET? Je souhaite en
>> > fait conserver un objet "en vie" entre deux sessions. Je m'explique :
>> >
>> > J'ai deux serveurs (A et B). Le serveur A (java) appelle une page via
>> > un HttpURLConnection sur le serveur B (.net) qui ajoute des données
>> > dans un object persistent et renvoie un ID unique vers A.
>> >
>> > A reçoit donc cet ID en réponse puis fait un redirect HTTP vers une
>> > autre page de B en lui passant cet ID dans l'url.
>> >
>> > ===> A cet instant je quitte le serveur A et j'arrive sur B
>> >
>> > B, grâce à cet ID unique, est capable de retrouver les données dans
>> > cet objet persistent.
>> >
>> >
>> > En gros je voudrais éviter de passer par une base de données.
>> >
>> >
>> >
>> > En fait, je suis en train de faire le portage d'une appli existente
>> > Java/Webspere en .net et comme ils utilisent une servlet instanciée
>> > une fois au démarrage de l'appli, cette persistente que je cherche a
>> > reproduire est matérialisée par une variable statique (une hashtable
>> > pour être précis). Or y a t-il un moyen en .net de faire la même
>> > chose?
>>
>>
>>
Vous devriez tout de même jeter un coup d'oeil à la session ASP.NET
surtout si vous êtes en .NET Framework 2.0, avec toutes les classes que
l'on trouve dans le namespace System.Web.SessionState. Ne serait-ce pour
vérifier que vous n'avez rien oublié dans l'implémentation.
ASP.NET State Management Recommendations:
http://msdn2.microsoft.com/en-us/library/z1hkazw7.aspx
C'est vraiment fait pour ça (ça gère le nettoyage, les timeouts, etc...),
et c'est très configurable / programmable. Vous pouvez même aller jusqu'à
changer l'implémentation du stockage de la session. De base ASP.NET
fournit le stockage dans la mémoire du serveur, dans SQL Server, ou dans
un processus spécial "'ASP.NET State server" (qui est à mon avis
l'équivalent de ce que vous avez réalisé), mais vous pouvez donc écrire un
custom server.
What's New in ASP.NET State Management & Custom Session-State Management
http://msdn2.microsoft.com/en-us/library/ms178577.aspx
Implementing a Session-State Store Provider
http://msdn2.microsoft.com/en-us/library/ms178587.aspx
Simon.
www.softfluent.com
PS: salut Benjamin :-)
"fragmonster" a écrit dans le message de news:
J'ai trouvé une solution qui répond à mon problème en passant par
la classe Application. Dans le global.asax du serveur B je crée au
moment de l'application_start une hashtable. (D'une certaine manière,
cette Hashtable peut être vue comme ma Hastable Statique de ma servlet
Java)
Le serveur A fait donc appel (HttpURLConnection) au serveur B qui
insère l'objet dans cette Hashtable avec comme clé un Guid.NewGuid()
je je retourne dans la réponse au serveur A.
Puis lorsque A redirige le browser vers B avec cet ID unique dans
l'url, je récupère mon objet dans ma Hashtable grace à cet ID et je
le Remove() de la hashtable (pour faire propre^^).
De plus j'ai ajouté un mécanisme de nettoyage de la Hashtable qui me
permet d'éviter qu'elle ne grossisse. Tous les items ne restent pas
plus de 10 minutes dans la HashTable.
Ca fonctionne
Vous devriez tout de même jeter un coup d'oeil à la session ASP.NET
surtout si vous êtes en .NET Framework 2.0, avec toutes les classes que
l'on trouve dans le namespace System.Web.SessionState. Ne serait-ce pour
vérifier que vous n'avez rien oublié dans l'implémentation.
ASP.NET State Management Recommendations:
http://msdn2.microsoft.com/en-us/library/z1hkazw7.aspx
C'est vraiment fait pour ça (ça gère le nettoyage, les timeouts, etc...),
et c'est très configurable / programmable. Vous pouvez même aller jusqu'à
changer l'implémentation du stockage de la session. De base ASP.NET
fournit le stockage dans la mémoire du serveur, dans SQL Server, ou dans
un processus spécial "'ASP.NET State server" (qui est à mon avis
l'équivalent de ce que vous avez réalisé), mais vous pouvez donc écrire un
custom server.
What's New in ASP.NET State Management & Custom Session-State Management
http://msdn2.microsoft.com/en-us/library/ms178577.aspx
Implementing a Session-State Store Provider
http://msdn2.microsoft.com/en-us/library/ms178587.aspx
Simon.
www.softfluent.com
PS: salut Benjamin :-)
"fragmonster" <fmeriot@gmail.com> a écrit dans le message de news:
1158764461.013211.321760@e3g2000cwe.googlegroups.com...
J'ai trouvé une solution qui répond à mon problème en passant par
la classe Application. Dans le global.asax du serveur B je crée au
moment de l'application_start une hashtable. (D'une certaine manière,
cette Hashtable peut être vue comme ma Hastable Statique de ma servlet
Java)
Le serveur A fait donc appel (HttpURLConnection) au serveur B qui
insère l'objet dans cette Hashtable avec comme clé un Guid.NewGuid()
je je retourne dans la réponse au serveur A.
Puis lorsque A redirige le browser vers B avec cet ID unique dans
l'url, je récupère mon objet dans ma Hashtable grace à cet ID et je
le Remove() de la hashtable (pour faire propre^^).
De plus j'ai ajouté un mécanisme de nettoyage de la Hashtable qui me
permet d'éviter qu'elle ne grossisse. Tous les items ne restent pas
plus de 10 minutes dans la HashTable.
Ca fonctionne
Vous devriez tout de même jeter un coup d'oeil à la session ASP.NET
surtout si vous êtes en .NET Framework 2.0, avec toutes les classes que
l'on trouve dans le namespace System.Web.SessionState. Ne serait-ce pour
vérifier que vous n'avez rien oublié dans l'implémentation.
ASP.NET State Management Recommendations:
http://msdn2.microsoft.com/en-us/library/z1hkazw7.aspx
C'est vraiment fait pour ça (ça gère le nettoyage, les timeouts, etc...),
et c'est très configurable / programmable. Vous pouvez même aller jusqu'à
changer l'implémentation du stockage de la session. De base ASP.NET
fournit le stockage dans la mémoire du serveur, dans SQL Server, ou dans
un processus spécial "'ASP.NET State server" (qui est à mon avis
l'équivalent de ce que vous avez réalisé), mais vous pouvez donc écrire un
custom server.
What's New in ASP.NET State Management & Custom Session-State Management
http://msdn2.microsoft.com/en-us/library/ms178577.aspx
Implementing a Session-State Store Provider
http://msdn2.microsoft.com/en-us/library/ms178587.aspx
Simon.
www.softfluent.com
PS: salut Benjamin :-)
"fragmonster" a écrit dans le message de news:
J'ai trouvé une solution qui répond à mon problème en passant par
la classe Application. Dans le global.asax du serveur B je crée au
moment de l'application_start une hashtable. (D'une certaine manière,
cette Hashtable peut être vue comme ma Hastable Statique de ma servlet
Java)
Le serveur A fait donc appel (HttpURLConnection) au serveur B qui
insère l'objet dans cette Hashtable avec comme clé un Guid.NewGuid()
je je retourne dans la réponse au serveur A.
Puis lorsque A redirige le browser vers B avec cet ID unique dans
l'url, je récupère mon objet dans ma Hashtable grace à cet ID et je
le Remove() de la hashtable (pour faire propre^^).
De plus j'ai ajouté un mécanisme de nettoyage de la Hashtable qui me
permet d'éviter qu'elle ne grossisse. Tous les items ne restent pas
plus de 10 minutes dans la HashTable.
Ca fonctionne