OVH Cloud OVH Cloud

comment intercepter une erreur avec global.asax?

5 réponses
Avatar
Bob
Rebonjour,

Quand un utilisateur essaye de changer le contenu d'un champ dans un
gridview avec une valeur existante (via le bouton Update), il reçoit tout
naturellement une erreur du type "The changes you requested to the table
were not successful because they would create duplicate values in the index
etc ...".
Pour éviter cela, l'utilse 'errorPage' comme directive de la page (<%@ Page
Language="VB" CodeFile="mult.aspx.vb" Inherits="mult" errorPage="err2.html"
%>) et de mettre dans web.config:
<customErrors mode="On">
</customErrors>

Ceci marche, mais je voudrais le faire d'une façon générale par le
global.asax.
J'y ai fait:
Sub Application_Error(ByVal sender As Object, ByVal e As EventArgs)
Dim ex As Exception
ex = Server.GetLastError()
Throw ex
End Sub

Mais il manque quelque chose et je ne sais pas quoi.
...

Merci d'avance pour votre aide.
Bob

5 réponses

Avatar
Sébastien FERRAND
Bonjour,

Pas besoin d'utiliser le global.asax pour cela, il suffit de te créer
une page ASPX qui recevra les erreurs et ajouter ceci au web.config :

<customErrors mode="On" defaultRedirect="tapageError.aspx">
<!-- tu peux aussi ajouter les codes standards ainsi : -->
<error statusCode="404" redirect="404.aspx" />
<error statusCode="500" redirect="500.aspx" />
</customErrors>



--
Cordialement,
Sébastien FERRAND
Consultant Indépendant
Microsoft Visual C# MVP
http://blogs.developpeur.org/sebmafate

Bob a écrit :
Rebonjour,

Quand un utilisateur essaye de changer le contenu d'un champ dans un
gridview avec une valeur existante (via le bouton Update), il reçoit tout
naturellement une erreur du type "The changes you requested to the table
were not successful because they would create duplicate values in the index
etc ...".
Pour éviter cela, l'utilse 'errorPage' comme directive de la page (<%@ Page
Language="VB" CodeFile="mult.aspx.vb" Inherits="mult" errorPage="err2.html"
%>) et de mettre dans web.config:
<customErrors mode="On">
</customErrors>

Ceci marche, mais je voudrais le faire d'une façon générale par le
global.asax.
J'y ai fait:
Sub Application_Error(ByVal sender As Object, ByVal e As EventArgs)
Dim ex As Exception
ex = Server.GetLastError()
Throw ex
End Sub

Mais il manque quelque chose et je ne sais pas quoi.
...

Merci d'avance pour votre aide.
Bob




Avatar
Bob
Merci de répondre, mais tout cela, je le savais déjà ...
J'aurais voulu savoir comment le faire d'une façon générale avec global.asax
...

"Sébastien FERRAND" <"listes-seb["@]vbmaf.net> wrote in message
news:%
Bonjour,

Pas besoin d'utiliser le global.asax pour cela, il suffit de te créer
une page ASPX qui recevra les erreurs et ajouter ceci au web.config :

<customErrors mode="On" defaultRedirect="tapageError.aspx">
<!-- tu peux aussi ajouter les codes standards ainsi : -->
<error statusCode="404" redirect="404.aspx" />
<error statusCode="500" redirect="500.aspx" />
</customErrors>



--
Cordialement,
Sébastien FERRAND
Consultant Indépendant
Microsoft Visual C# MVP
http://blogs.developpeur.org/sebmafate

Bob a écrit :
> Rebonjour,
>
> Quand un utilisateur essaye de changer le contenu d'un champ dans un
> gridview avec une valeur existante (via le bouton Update), il reçoit


tout
> naturellement une erreur du type "The changes you requested to the table
> were not successful because they would create duplicate values in the


index
> etc ...".
> Pour éviter cela, l'utilse 'errorPage' comme directive de la page (<%@


Page
> Language="VB" CodeFile="mult.aspx.vb" Inherits="mult"


errorPage="err2.html"
> %>) et de mettre dans web.config:
> <customErrors mode="On">
> </customErrors>
>
> Ceci marche, mais je voudrais le faire d'une façon générale par le
> global.asax.
> J'y ai fait:
> Sub Application_Error(ByVal sender As Object, ByVal e As EventArgs)
> Dim ex As Exception
> ex = Server.GetLastError()
> Throw ex
> End Sub
>
> Mais il manque quelque chose et je ne sais pas quoi.
> ...
>
> Merci d'avance pour votre aide.
> Bob
>
>


Avatar
Sébastien FERRAND
tu veux en faire quoi de l'erreur que tu récupères dans ton Global.asax ?

Cordialement,
Sébastien FERRAND
Consultant Indépendant
Microsoft Visual C# MVP
http://blogs.developpeur.org/sebmafate

Bob a écrit :
Merci de répondre, mais tout cela, je le savais déjà ...
J'aurais voulu savoir comment le faire d'une façon générale avec global.asax
...

"Sébastien FERRAND" <"listes-seb["@]vbmaf.net> wrote in message
news:%
Bonjour,

Pas besoin d'utiliser le global.asax pour cela, il suffit de te créer
une page ASPX qui recevra les erreurs et ajouter ceci au web.config :

<customErrors mode="On" defaultRedirect="tapageError.aspx">
<!-- tu peux aussi ajouter les codes standards ainsi : -->
<error statusCode="404" redirect="404.aspx" />
<error statusCode="500" redirect="500.aspx" />
</customErrors>



--
Cordialement,
Sébastien FERRAND
Consultant Indépendant
Microsoft Visual C# MVP
http://blogs.developpeur.org/sebmafate

Bob a écrit :
Rebonjour,

Quand un utilisateur essaye de changer le contenu d'un champ dans un
gridview avec une valeur existante (via le bouton Update), il reçoit




tout
naturellement une erreur du type "The changes you requested to the table
were not successful because they would create duplicate values in the




index
etc ...".
Pour éviter cela, l'utilse 'errorPage' comme directive de la page (<%@




Page
Language="VB" CodeFile="mult.aspx.vb" Inherits="mult"




errorPage="err2.html"
%>) et de mettre dans web.config:
<customErrors mode="On">
</customErrors>

Ceci marche, mais je voudrais le faire d'une façon générale par le
global.asax.
J'y ai fait:
Sub Application_Error(ByVal sender As Object, ByVal e As EventArgs)
Dim ex As Exception
ex = Server.GetLastError()
Throw ex
End Sub

Mais il manque quelque chose et je ne sais pas quoi.
...

Merci d'avance pour votre aide.
Bob










Avatar
Bob
J'ai une trentaine de pages qui peuvent produire la même erreur mentionnée
et je pensais donc pouvoir toutes les diriger vers une page erreur dans le
global.asax.
C'est aussi la curiosité qui me pousse à poser cette question.

"Sébastien FERRAND" <"listes-seb["@]vbmaf.net> wrote in message
news:
tu veux en faire quoi de l'erreur que tu récupères dans ton Global.asax ?

Cordialement,
Sébastien FERRAND
Consultant Indépendant
Microsoft Visual C# MVP
http://blogs.developpeur.org/sebmafate

Bob a écrit :
> Merci de répondre, mais tout cela, je le savais déjà ...
> J'aurais voulu savoir comment le faire d'une façon générale avec


global.asax
> ...
>
> "Sébastien FERRAND" <"listes-seb["@]vbmaf.net> wrote in message
> news:%
>> Bonjour,
>>
>> Pas besoin d'utiliser le global.asax pour cela, il suffit de te créer
>> une page ASPX qui recevra les erreurs et ajouter ceci au web.config :
>>
>> <customErrors mode="On" defaultRedirect="tapageError.aspx">
>> <!-- tu peux aussi ajouter les codes standards ainsi : -->
>> <error statusCode="404" redirect="404.aspx" />
>> <error statusCode="500" redirect="500.aspx" />
>> </customErrors>
>>
>>
>>
>> --
>> Cordialement,
>> Sébastien FERRAND
>> Consultant Indépendant
>> Microsoft Visual C# MVP
>> http://blogs.developpeur.org/sebmafate
>>
>> Bob a écrit :
>>> Rebonjour,
>>>
>>> Quand un utilisateur essaye de changer le contenu d'un champ dans un
>>> gridview avec une valeur existante (via le bouton Update), il reçoit
> tout
>>> naturellement une erreur du type "The changes you requested to the


table
>>> were not successful because they would create duplicate values in the
> index
>>> etc ...".
>>> Pour éviter cela, l'utilse 'errorPage' comme directive de la page (<%@
> Page
>>> Language="VB" CodeFile="mult.aspx.vb" Inherits="mult"
> errorPage="err2.html"
>>> %>) et de mettre dans web.config:
>>> <customErrors mode="On">
>>> </customErrors>
>>>
>>> Ceci marche, mais je voudrais le faire d'une façon générale par le
>>> global.asax.
>>> J'y ai fait:
>>> Sub Application_Error(ByVal sender As Object, ByVal e As EventArgs)
>>> Dim ex As Exception
>>> ex = Server.GetLastError()
>>> Throw ex
>>> End Sub
>>>
>>> Mais il manque quelque chose et je ne sais pas quoi.
>>> ...
>>>
>>> Merci d'avance pour votre aide.
>>> Bob
>>>
>>>
>
>


Avatar
Bob
Tu ne me réponds plus?

"Bob" wrote in message
news:
J'ai une trentaine de pages qui peuvent produire la même erreur mentionnée
et je pensais donc pouvoir toutes les diriger vers une page erreur dans le
global.asax.
C'est aussi la curiosité qui me pousse à poser cette question.

"Sébastien FERRAND" <"listes-seb["@]vbmaf.net> wrote in message
news:
> tu veux en faire quoi de l'erreur que tu récupères dans ton Global.asax


?
>
> Cordialement,
> Sébastien FERRAND
> Consultant Indépendant
> Microsoft Visual C# MVP
> http://blogs.developpeur.org/sebmafate
>
> Bob a écrit :
> > Merci de répondre, mais tout cela, je le savais déjà ...
> > J'aurais voulu savoir comment le faire d'une façon générale avec
global.asax
> > ...
> >
> > "Sébastien FERRAND" <"listes-seb["@]vbmaf.net> wrote in message
> > news:%
> >> Bonjour,
> >>
> >> Pas besoin d'utiliser le global.asax pour cela, il suffit de te créer
> >> une page ASPX qui recevra les erreurs et ajouter ceci au web.config :
> >>
> >> <customErrors mode="On" defaultRedirect="tapageError.aspx">
> >> <!-- tu peux aussi ajouter les codes standards ainsi : -->
> >> <error statusCode="404" redirect="404.aspx" />
> >> <error statusCode="500" redirect="500.aspx" />
> >> </customErrors>
> >>
> >>
> >>
> >> --
> >> Cordialement,
> >> Sébastien FERRAND
> >> Consultant Indépendant
> >> Microsoft Visual C# MVP
> >> http://blogs.developpeur.org/sebmafate
> >>
> >> Bob a écrit :
> >>> Rebonjour,
> >>>
> >>> Quand un utilisateur essaye de changer le contenu d'un champ dans un
> >>> gridview avec une valeur existante (via le bouton Update), il reçoit
> > tout
> >>> naturellement une erreur du type "The changes you requested to the
table
> >>> were not successful because they would create duplicate values in


the
> > index
> >>> etc ...".
> >>> Pour éviter cela, l'utilse 'errorPage' comme directive de la page


(<%@
> > Page
> >>> Language="VB" CodeFile="mult.aspx.vb" Inherits="mult"
> > errorPage="err2.html"
> >>> %>) et de mettre dans web.config:
> >>> <customErrors mode="On">
> >>> </customErrors>
> >>>
> >>> Ceci marche, mais je voudrais le faire d'une façon générale par le
> >>> global.asax.
> >>> J'y ai fait:
> >>> Sub Application_Error(ByVal sender As Object, ByVal e As EventArgs)
> >>> Dim ex As Exception
> >>> ex = Server.GetLastError()
> >>> Throw ex
> >>> End Sub
> >>>
> >>> Mais il manque quelque chose et je ne sais pas quoi.
> >>> ...
> >>>
> >>> Merci d'avance pour votre aide.
> >>> Bob
> >>>
> >>>
> >
> >