473,395 Members | 1,915 Online
Bytes | Software Development & Data Engineering Community
Post Job

Home Posts Topics Members FAQ

Join Bytes to post your question to a community of 473,395 software developers and data experts.

Error handling not working

This has been driving me crazy.

I have been trying to get the error handling working on my system and can
get parts of it working and others won't work at all.

I found that you can't access session variables from Application_Error
event, but I need to so I don't need to set up traces to see what they are
during an error. I am emailing the error condition to myself when it
happens.

So I moved the code to one of my error pages and it works fine if called
directly. So I added this code to my Application_Error routine:

Sub Application_Error(Sender As Object, E as EventArgs)
response.Redirect("/PageError.aspx")
End Sub

And it goes fine to my error page which emails my session variables to me,
but when I try to do:

Dim exception As Exception = Server.GetLastError()

I get nothing. I assume the Application_Error routine cleared it.

I then tried to comment out the Application_Error code so it would go to the
CustomErrors in my webconfig file:

<customErrors defaultRedirect="PageUnavailable.aspx" mode="Off" />

but the page is never called - it goes to the MS Error page. If Change mode
to "On",

<customErrors defaultRedirect="PageUnavailable.aspx" mode="On" />

I get the following page:

************************************************** *******************
Runtime Error
Description: An application error occurred on the server. The current custom
error settings for this application prevent the details of the application
error from being viewed remotely (for security reasons). It could, however,
be viewed by browsers running on the local server machine.

Details: To enable the details of this specific error message to be viewable
on remote machines, please create a <customErrors> tag within a "web.config"
configuration file located in the root directory of the current web
application. This <customErrors> tag should then have its "mode" attribute
set to "Off".
<!-- Web.Config Configuration File -->

<configuration>
<system.web>
<customErrors mode="Off"/>
</system.web>
</configuration>
Notes: The current error page you are seeing can be replaced by a custom
error page by modifying the "defaultRedirect" attribute of the application's
<customErrors> configuration tag to point to a custom error page URL.
<!-- Web.Config Configuration File -->

<configuration>
<system.web>
<customErrors mode="RemoteOnly" defaultRedirect="mycustompage.htm"/>
</system.web>
</configuration>
************************************************** **********************************

I also tried setting up a Page_Error in my program and it never gets called.

I don't understand why this is a problem.

Tom
Feb 22 '06 #1
2 2117
Tom,
you want to do this:

Exception ex= Server.GetLastError().GetBaseException()

at this point, if you want, you could possibly even store the exception in
Session and then do your redirect.
GetBaseException retrieves the "real" innerException object.

Here's a pretty good article with some more ideas:
http://www.developer.com/net/asp/article.php/961301

Peter

--
Co-founder, Eggheadcafe.com developer portal:
http://www.eggheadcafe.com
UnBlog:
http://petesbloggerama.blogspot.com


"tshad" wrote:
This has been driving me crazy.

I have been trying to get the error handling working on my system and can
get parts of it working and others won't work at all.

I found that you can't access session variables from Application_Error
event, but I need to so I don't need to set up traces to see what they are
during an error. I am emailing the error condition to myself when it
happens.

So I moved the code to one of my error pages and it works fine if called
directly. So I added this code to my Application_Error routine:

Sub Application_Error(Sender As Object, E as EventArgs)
response.Redirect("/PageError.aspx")
End Sub

And it goes fine to my error page which emails my session variables to me,
but when I try to do:

Dim exception As Exception = Server.GetLastError()

I get nothing. I assume the Application_Error routine cleared it.

I then tried to comment out the Application_Error code so it would go to the
CustomErrors in my webconfig file:

<customErrors defaultRedirect="PageUnavailable.aspx" mode="Off" />

but the page is never called - it goes to the MS Error page. If Change mode
to "On",

<customErrors defaultRedirect="PageUnavailable.aspx" mode="On" />

I get the following page:

************************************************** *******************
Runtime Error
Description: An application error occurred on the server. The current custom
error settings for this application prevent the details of the application
error from being viewed remotely (for security reasons). It could, however,
be viewed by browsers running on the local server machine.

Details: To enable the details of this specific error message to be viewable
on remote machines, please create a <customErrors> tag within a "web.config"
configuration file located in the root directory of the current web
application. This <customErrors> tag should then have its "mode" attribute
set to "Off".
<!-- Web.Config Configuration File -->

<configuration>
<system.web>
<customErrors mode="Off"/>
</system.web>
</configuration>
Notes: The current error page you are seeing can be replaced by a custom
error page by modifying the "defaultRedirect" attribute of the application's
<customErrors> configuration tag to point to a custom error page URL.
<!-- Web.Config Configuration File -->

<configuration>
<system.web>
<customErrors mode="RemoteOnly" defaultRedirect="mycustompage.htm"/>
</system.web>
</configuration>
************************************************** **********************************

I also tried setting up a Page_Error in my program and it never gets called.

I don't understand why this is a problem.

Tom

Feb 22 '06 #2
That will get me the last error, but I am trying to get all the errors and
am looping through the innerException object. The GetBaseException also
gets me the last one, which would be fine. But I found that the error
response I get back is unreadable.

If I don't do the Application_Error, I get this error:

************************************************** *****************
Compilation Error
Description: An error occurred during the compilation of a resource required
to service this request. Please review the following specific error details
and modify your source code appropriately.

Compiler Error Message: BC30451: Name 'SearchType' is not declared.

Source Error:

Line 89: Else
Line 90: 'We aren't dealing with an array, so just display the
variable
Line 91: if
SearchType.IndexOf(Session.Contents(strName).GetTy pe.ToString()) >= 0 then
Line 92: trace.warn(strName & " - " & Session.Contents(strName) & "
" & Session.Contents(strName).GetType.ToString)
Line 93: else

Source File:
C:\Inetpub\wwwroot\staffingworkshop\ADMINISTRATION \showExceptions.aspx
Line: 91

************************************************** *****************

If I do the following:

************************************************** *****************
Sub Application_Error(Sender As Object, E as EventArgs)
Dim exception As Exception = Server.GetLastError().GetBaseException()
Dim ErrorString as String

While Not exception Is Nothing
ErrorString &= "Source: " & exception.Source & vbCrLf & _
"Message: " & exception.Message & vbCrLf & _
"Stack Trace: " & vbCrLf & exception.StackTrace & vbCrLf &
vbCrLf
exception = exception.InnerException
End While

Dim MyMessage as New MailMessage
MyMessage.To = tf*@ftsos.com
MyMessage.From = "tf*@ftsos.com"
MyMessage.Subject = "Unhandled ASP.Net Error"
MyMessage.Body = vbCrLf & vbCrLf & "An Error was Generated on " & now &
vbCrLf & vbCrLf & _
"To see a list of Errors:
HTTP:\\www.staffingworkshop.com\administration\sho wExceptions.aspx" & vbCrLf
& vbCrLf & _
"Page: " & HTTPContext.Current.Request.Url.ToString() & vbCrLf &
vbCrLf & ErrorString

SmtpMail.SmtpServer = Application("MailServer")
SmtpMail.Send(MyMessage)

Context.ClearError()
response.Redirect("/PageError.aspx")
End Sub
************************************************** *****************

I get the following results:

************************************************** ******************
An Error was Generated on 2/21/2006 5:39:25 PM

To see a list of Errors:
HTTP:\\http://www.staffingworkshop.com\admi...xceptions.aspx

Page: http://www.staffingworkshop.com/ADMI...xceptions.aspx

Source: System.Web
Message: External component has thrown an exception.
Stack Trace:
at
System.Web.Compilation.BaseCompiler.ThrowIfCompile rErrors(CompilerResults
results, CodeDomProvider codeProvider, CodeCompileUnit sourceData, String
sourceFile, String sourceString)
at System.Web.Compilation.BaseCompiler.GetCompiledTyp e()
at System.Web.UI.PageParser.CompileIntoType()
at System.Web.UI.TemplateParser.GetParserCacheItemThr oughCompilation()
************************************************** ******************

If I take out the GetBaseException():

Dim exception As Exception = Server.GetLastError().GetBaseException()

I get

************************************************** *********************
An Error was Generated on 2/21/2006 5:41:49 PM

To see a list of Errors:
HTTP:\\http://www.staffingworkshop.com\admi...xceptions.aspx

Page: http://www.staffingworkshop.com/ADMI...xceptions.aspx

Source: System.Web
Message: External component has thrown an exception.
Stack Trace:
at System.Web.UI.TemplateParser.GetParserCacheItemInt ernal(Boolean
fCreateIfNotFound)
at System.Web.UI.TemplateParser.GetParserCacheItemWit hNewConfigPath()
at System.Web.UI.TemplateParser.GetParserCacheItem()
at
System.Web.UI.TemplateControlParser.CompileAndGetP arserCacheItem(String
virtualPath, String inputFile, HttpContext context)
at System.Web.UI.TemplateControlParser.GetCompiledIns tance(String
virtualPath, String inputFile, HttpContext context)
at System.Web.UI.PageParser.GetCompiledPageInstanceIn ternal(String
virtualPath, String inputFile, HttpContext context)
at System.Web.UI.PageHandlerFactory.GetHandler(HttpCo ntext context,
String requestType, String url, String path)
at System.Web.HttpApplication.MapHttpHandler(HttpCont ext context, String
requestType, String path, String pathTranslated, Boolean useAppConfig)
at
System.Web.MapHandlerExecutionStep.System.Web.Http Application+IExecutionStep.Execute()
at System.Web.HttpApplication.ExecuteStep(IExecutionS tep step, Boolean&
completedSynchronously)

Source: System.Web
Message: External component has thrown an exception.
Stack Trace:
at
System.Web.Compilation.BaseCompiler.ThrowIfCompile rErrors(CompilerResults
results, CodeDomProvider codeProvider, CodeCompileUnit sourceData, String
sourceFile, String sourceString)
at System.Web.Compilation.BaseCompiler.GetCompiledTyp e()
at System.Web.UI.PageParser.CompileIntoType()
at System.Web.UI.TemplateParser.GetParserCacheItemThr oughCompilation()

************************************************** *********************

Either way there is nothing like: BC30451: Name 'SearchType' is not
declared.

Where do you get that?

These message are pretty useless without it.

Thanks,

Tom

"Peter Bromberg [C# MVP]" <pb*******@yahoo.nospammin.com> wrote in message
news:8C**********************************@microsof t.com...
Tom,
you want to do this:

Exception ex= Server.GetLastError().GetBaseException()

at this point, if you want, you could possibly even store the exception in
Session and then do your redirect.
GetBaseException retrieves the "real" innerException object.

Here's a pretty good article with some more ideas:
http://www.developer.com/net/asp/article.php/961301

Peter

--
Co-founder, Eggheadcafe.com developer portal:
http://www.eggheadcafe.com
UnBlog:
http://petesbloggerama.blogspot.com


"tshad" wrote:
This has been driving me crazy.

I have been trying to get the error handling working on my system and can
get parts of it working and others won't work at all.

I found that you can't access session variables from Application_Error
event, but I need to so I don't need to set up traces to see what they
are
during an error. I am emailing the error condition to myself when it
happens.

So I moved the code to one of my error pages and it works fine if called
directly. So I added this code to my Application_Error routine:

Sub Application_Error(Sender As Object, E as EventArgs)
response.Redirect("/PageError.aspx")
End Sub

And it goes fine to my error page which emails my session variables to
me,
but when I try to do:

Dim exception As Exception = Server.GetLastError()

I get nothing. I assume the Application_Error routine cleared it.

I then tried to comment out the Application_Error code so it would go to
the
CustomErrors in my webconfig file:

<customErrors defaultRedirect="PageUnavailable.aspx" mode="Off" />

but the page is never called - it goes to the MS Error page. If Change
mode
to "On",

<customErrors defaultRedirect="PageUnavailable.aspx" mode="On" />

I get the following page:

************************************************** *******************
Runtime Error
Description: An application error occurred on the server. The current
custom
error settings for this application prevent the details of the
application
error from being viewed remotely (for security reasons). It could,
however,
be viewed by browsers running on the local server machine.

Details: To enable the details of this specific error message to be
viewable
on remote machines, please create a <customErrors> tag within a
"web.config"
configuration file located in the root directory of the current web
application. This <customErrors> tag should then have its "mode"
attribute
set to "Off".
<!-- Web.Config Configuration File -->

<configuration>
<system.web>
<customErrors mode="Off"/>
</system.web>
</configuration>
Notes: The current error page you are seeing can be replaced by a custom
error page by modifying the "defaultRedirect" attribute of the
application's
<customErrors> configuration tag to point to a custom error page URL.
<!-- Web.Config Configuration File -->

<configuration>
<system.web>
<customErrors mode="RemoteOnly"
defaultRedirect="mycustompage.htm"/>
</system.web>
</configuration>
************************************************** **********************************

I also tried setting up a Page_Error in my program and it never gets
called.

I don't understand why this is a problem.

Tom

Feb 22 '06 #3

This thread has been closed and replies have been disabled. Please start a new discussion.

Similar topics

1
by: Wayno | last post by:
My php logs are coming up empty. I have done all I can think of, and all that made sense to me. Can someone take a look at my php.ini please and tell me what you think may be the problem. I...
6
by: Squirrel | last post by:
I have a command button on a subform to delete a record. The only statement in the subroutine is: DoCmd.RunCommand acCmdDeleteRecord The subform's recordsource is "select * from tblVisit order...
1
by: michaeltorus | last post by:
Hi I'm currently designing a new web application in .Net. I've pretty covered everything, apart from error handling. There seems to be a few different way to do this, but something I've read...
3
by: Mr Newbie | last post by:
I'm testing error handling configurations and having some trouble. I created a WebForm called. ErrDefault.aspx and I am trying to use the Page error attribute to force the redirection to a custom...
9
by: Gustaf | last post by:
I'm confused about structured error handling. The following piece of code is a simplification of a class library I'm working on. It works, and it does what I want, but I'm still not convinced that...
10
by: Anthony England | last post by:
(sorry for the likely repost, but it is still not showing on my news server and after that much typing, I don't want to lose it) I am considering general error handling routines and have...
4
by: DavideR | last post by:
I have converted a large vb6 program with an add-in that for every routine gimme the error handling: the add-in adds one line on the head of the routine "if myerrhandle then ON ERROR GOTO...
0
by: dhyder | last post by:
I'm working on an admin page for a SQL Server 05 db. The page is in ASP.NET 2.0/C#. The db has multiple tables with foreign keys/constraints. I have multiple SqlDataSources and GridViews, which...
9
by: Trapulo | last post by:
Hello, with ASP.NET 2.0 Ajax every unexpected error is managed client-side with a popup that reports the error to the user. In ASP.NET 3.5 this behavor has been changed: how can I have a similar...
0
by: Charles Arthur | last post by:
How do i turn on java script on a villaon, callus and itel keypad mobile phone
0
by: emmanuelkatto | last post by:
Hi All, I am Emmanuel katto from Uganda. I want to ask what challenges you've faced while migrating a website to cloud. Please let me know. Thanks! Emmanuel
0
BarryA
by: BarryA | last post by:
What are the essential steps and strategies outlined in the Data Structures and Algorithms (DSA) roadmap for aspiring data scientists? How can individuals effectively utilize this roadmap to progress...
1
by: nemocccc | last post by:
hello, everyone, I want to develop a software for my android phone for daily needs, any suggestions?
1
by: Sonnysonu | last post by:
This is the data of csv file 1 2 3 1 2 3 1 2 3 1 2 3 2 3 2 3 3 the lengths should be different i have to store the data by column-wise with in the specific length. suppose the i have to...
0
by: Hystou | last post by:
There are some requirements for setting up RAID: 1. The motherboard and BIOS support RAID configuration. 2. The motherboard has 2 or more available SATA protocol SSD/HDD slots (including MSATA, M.2...
0
marktang
by: marktang | last post by:
ONU (Optical Network Unit) is one of the key components for providing high-speed Internet services. Its primary function is to act as an endpoint device located at the user's premises. However,...
0
by: Hystou | last post by:
Most computers default to English, but sometimes we require a different language, especially when relocating. Forgot to request a specific language before your computer shipped? No problem! You can...
0
Oralloy
by: Oralloy | last post by:
Hello folks, I am unable to find appropriate documentation on the type promotion of bit-fields when using the generalised comparison operator "<=>". The problem is that using the GNU compilers,...

By using Bytes.com and it's services, you agree to our Privacy Policy and Terms of Use.

To disable or enable advertisements and analytics tracking please visit the manage ads & tracking page.