Twitter iPhone pliant OnePlus 11 PS5 Disney+ Orange Livebox Windows 11

Problème Global.asax et server.transfer

2 réponses
Avatar
fabrice
Bonsoir

J ai un site sous le framework 1.1.
J'utilise l'authentificatiopn par formulaire.
J ai crée via le web.config une zone public à laquelle je peux accèder sans
authentification. Une page d informations par exemple.


Lorsque le site démarre je réalise un certain nombre d opérations comme l
insertion de la date dans une base de données. Je fais cela via le
global.asax via la procédure
Sub Application_Start. Rien de spécial jusqu'ici.
Mais j'utilise un bloc Try/Catch pour gérer un problème de base. Mais comme
il n y a pas d'authentification je renvois vers une page d erreur en zone
publique. Mais mon Server.Transfer ne fonctionne pas et me renvoit une
erreur.

la voici :


1/ Exemple de bloc dans le global.asax
Try

'Création de la Requête d'Insertion
.... plus exécution

Catch ex as exception
Server.Transfer("/public/2.aspx",false) ----> catch de l'erreur

Finally

....


2/l'erreur

La référence d'objet n'est pas définie à une instance d'un objet.
Description : Une exception non gérée s'est produite au moment de
l'exécution de la demande Web actuelle. Contrôlez la trace de la pile pour
plus d'informations sur l'erreur et son origine dans le code.

Détails de l'exception: System.NullReferenceException: La référence d'objet
n'est pas définie à une instance d'un objet.

Erreur source:

....
Ligne 95 : Catch ex as exception
Ligne 96 : Server.Transfer("/public/2.aspx",True)
Ligne 97 :
Ligne 98 : Finally

Fichier source : [chemin].....\Global.asax.vb Ligne : 96

Trace de la pile:


[NullReferenceException: La référence d'objet n'est pas définie à une
instance d'un objet.]
System.Web.HttpServerUtility.ExecuteInternal(String path, TextWriter
writer, Boolean preserveForm) +518

[HttpException (0x80004005): Erreur lors de l'exécution de la demande enfant
pour /public/2.aspx.]
System.Web.HttpServerUtility.ExecuteInternal(String path, TextWriter
writer, Boolean preserveForm) +1763
System.Web.HttpServerUtility.Transfer(String path, Boolean preserveForm)
+24
myGlobal.Application_Start(Object Sender, EventArgs E) in [chemin]
...\Global.asax.vb:96


Je ne comprends pas vraiment l'erreur.
Si vous pouviez me donner un coup de pouce.

merci par avance
fabrice.

2 réponses

Avatar
zoltix
fabrice wrote:
Bonsoir

J ai un site sous le framework 1.1.
J'utilise l'authentificatiopn par formulaire.
J ai crée via le web.config une zone public à laquelle je peux accèder sans
authentification. Une page d informations par exemple.


Lorsque le site démarre je réalise un certain nombre d opérations comme l
insertion de la date dans une base de données. Je fais cela via le
global.asax via la procédure
Sub Application_Start. Rien de spécial jusqu'ici.
Mais j'utilise un bloc Try/Catch pour gérer un problème de base. Mais comme
il n y a pas d'authentification je renvois vers une page d erreur en zone
publique. Mais mon Server.Transfer ne fonctionne pas et me renvoit une
erreur.

la voici :


1/ Exemple de bloc dans le global.asax
Try

'Création de la Requête d'Insertion
.... plus exécution

Catch ex as exception
Server.Transfer("/public/2.aspx",false) ----> catch de l'erreur

Finally

....


2/l'erreur

La référence d'objet n'est pas définie à une instance d'un objet.
Description : Une exception non gérée s'est produite au moment de
l'exécution de la demande Web actuelle. Contrôlez la trace de la pile pour
plus d'informations sur l'erreur et son origine dans le code.

Détails de l'exception: System.NullReferenceException: La référence d'objet
n'est pas définie à une instance d'un objet.

Erreur source:

....
Ligne 95 : Catch ex as exception
Ligne 96 : Server.Transfer("/public/2.aspx",True)
Ligne 97 :
Ligne 98 : Finally

Fichier source : [chemin].....Global.asax.vb Ligne : 96

Trace de la pile:


[NullReferenceException: La référence d'objet n'est pas définie à une
instance d'un objet.]
System.Web.HttpServerUtility.ExecuteInternal(String path, TextWriter
writer, Boolean preserveForm) +518

[HttpException (0x80004005): Erreur lors de l'exécution de la demande enfant
pour /public/2.aspx.]
System.Web.HttpServerUtility.ExecuteInternal(String path, TextWriter
writer, Boolean preserveForm) +1763
System.Web.HttpServerUtility.Transfer(String path, Boolean preserveForm)
+24
myGlobal.Application_Start(Object Sender, EventArgs E) in [chemin]
...Global.asax.vb:96


Je ne comprends pas vraiment l'erreur.
Si vous pouviez me donner un coup de pouce.

merci par avance
fabrice.




Tu ne devrais pas utiliser Response.Redirect("/public/2.aspx".....) au lieu de Server.Transfer("/public/2.aspx",True)
Avatar
Paul Bacelar
"zoltix" wrote in message
news:45506cbe$0$2817$
fabrice wrote:
Bonsoir

J ai un site sous le framework 1.1.
J'utilise l'authentificatiopn par formulaire.
J ai crée via le web.config une zone public à laquelle je peux accèder
sans authentification. Une page d informations par exemple.


Lorsque le site démarre je réalise un certain nombre d opérations comme l
insertion de la date dans une base de données. Je fais cela via le
global.asax via la procédure
Sub Application_Start. Rien de spécial jusqu'ici.
Mais j'utilise un bloc Try/Catch pour gérer un problème de base. Mais
comme il n y a pas d'authentification je renvois vers une page d erreur
en zone publique. Mais mon Server.Transfer ne fonctionne pas et me
renvoit une erreur.

la voici :


1/ Exemple de bloc dans le global.asax
Try

'Création de la Requête d'Insertion
.... plus exécution

Catch ex as exception
Server.Transfer("/public/2.aspx",false) ----> catch de l'erreur

Finally

....


2/l'erreur

La référence d'objet n'est pas définie à une instance d'un objet.
Description : Une exception non gérée s'est produite au moment de
l'exécution de la demande Web actuelle. Contrôlez la trace de la pile
pour plus d'informations sur l'erreur et son origine dans le code.

Détails de l'exception: System.NullReferenceException: La référence
d'objet n'est pas définie à une instance d'un objet.

Erreur source:

....
Ligne 95 : Catch ex as exception
Ligne 96 : Server.Transfer("/public/2.aspx",True)
Ligne 97 :
Ligne 98 : Finally

Fichier source : [chemin].....Global.asax.vb Ligne : 96

Trace de la pile:


[NullReferenceException: La référence d'objet n'est pas définie à une
instance d'un objet.]
System.Web.HttpServerUtility.ExecuteInternal(String path, TextWriter
writer, Boolean preserveForm) +518

[HttpException (0x80004005): Erreur lors de l'exécution de la demande
enfant pour /public/2.aspx.]
System.Web.HttpServerUtility.ExecuteInternal(String path, TextWriter
writer, Boolean preserveForm) +1763
System.Web.HttpServerUtility.Transfer(String path, Boolean
preserveForm) +24
myGlobal.Application_Start(Object Sender, EventArgs E) in [chemin]
...Global.asax.vb:96


Je ne comprends pas vraiment l'erreur.
Si vous pouviez me donner un coup de pouce.

merci par avance
fabrice.


Tu ne devrais pas utiliser Response.Redirect("/public/2.aspx".....) au
lieu de Server.Transfer("/public/2.aspx",True)







Ce n'est pas très logique de faire un "Server.Transfer" dans un
Application_Start car il n'y a pas de relation directe avec une requête HTTP
et donc avec une page ASP.NET.


--
Paul Bacelar
MVP VC++