where can i find the lines of error in Runtime Error Page?

Y

Yongsub Eric Shin

Hi. I'm just a beginner in ASP.Net.
I started writing codes and I keep on getting this Runtime
Error page, where it says

"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"."

Where can i find the lines of the error???
 
S

Shan

As mentioned in your error details, the CustomError tag is
in Web.Config File of your application.

Thanks,
-Shan
 
Y

Yongsub Eric Shin

Thanks, Shan
I looked at the Web.config file,
but the lines about customError says

<!-- CUSTOM ERROR MESSAGES
Set customErrors mode="On" or "RemoteOnly" to
enable custom error messages, "Off" to disable.
Add <error> tags for each of the errors you want
to handle.
-->
<customErrors mode="OFF" />

i tried "ON", "REMOTEONLY" and "OFF" all of them
but i still don't get the exact lines of error..

You know like in ASP, if you have a syntax error in the
code, the browser shows the exact line #, but ASP.net has
the functionality too??

Sorry for kinda naive question...Please bear with this new
guy..>.<
Thanks..
 
S

Shan

If the CustomErrors Mode is "ON". It will display the
error message with the Stack Trace which will basically
tell you the line number and the code where its erroring..

Thanks,
-Shan
 
Y

Yongsub Shin

Thanks again, Shan
I've tried to set the mode to "ON"
but it still doesn't display the Stack Trace.
it only displays following msgs

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>
 
C

Chris Becker

I think that the only way you can get the line number is to upload the pdb
file with your apps dll file. If you are using the release dll, you must
add pdb creation to your project settings. But if you do upload the pdb
file, make sure that you are handling all errors yourself (I don't think the
customerrors section is what you are looking for since an error just causes
a redirect to the error page and the stack is lost. What you should look
into is the Global.asax file at ApplicationError() or Page.Error to handle
errors. Again, you must include the pdb file from what I know. Here are
some examples:

Sub Application_Error(ByVal sender As Object, ByVal e As EventArgs)
Dim ex As Exception = Server.GetLastError()
If TypeOf ex Is SqlClient.SqlException Then
If CType(ex, SqlClient.SqlException).Number = 17 Then
Server.ClearError()

ErrorReport.RedirectToError(ErrorReport.ErrorCodes.DatabaseMaintenance)
End If
Else
If UseGlobalErrorHandler Then
Dim errorText As String = CreateExceptionString(ex)
SendCriticalErrorEmail(errorText)
HttpContext.Current.Trace.Warn("An error occured",
errorText)
Server.ClearError()
ErrorReport.RedirectToError(ErrorReport.ErrorCodes.Unknown)
End If
End If
End Sub


Public Shared Function CreateExceptionString(ByVal ex As Exception) As
String
Dim text As New System.Text.StringBuilder("")
Dim NL As String = System.Environment.NewLine
If Not TypeOf ex Is System.Web.HttpUnhandledException Then
text.Append("An error has occured." + NL)
text.AppendFormat("Time: {0}{1}", Now.ToString, NL)
text.AppendFormat("Request type: {0}{1}",
HttpContext.Current.Request.HttpMethod, NL)
text.AppendFormat("Url: {0}{1}",
HttpContext.Current.Request.Url.ToString, NL)
text.AppendFormat("Referrer: {0}{1}",
HttpContext.Current.Request.UrlReferrer, NL)
text.AppendFormat("Current username: {0}{1}",
Security.GetCurrentUsername, NL)
text.AppendFormat("Current user ID: {0}{1}",
Security.GetCurrentUserID, NL)
text.AppendFormat("Current user type: {0}{1}",
Security.GetCurrentUserType, NL)
text.AppendFormat("Source: {0}{1}", ex.Source, NL)
text.AppendFormat("Message: {0}{1}", ex.Message, NL)
text.AppendFormat("Stack trace: {0}{1}", ex.StackTrace, NL)
End If
If Not IsNothing(ex.InnerException) Then
text.AppendFormat("===================================={0}{1}",
NL, CreateExceptionString(ex.InnerException))
End If
Return text.ToString
End Function
 
M

Martin

The setting you had originally:

<customErrors mode="Off" />

should give you the maximun feedback, including line numbers. I am not sure
about case sensitivity of attribute values (names are for sure) but I
wouln't write "OFF" if the documentation says "Off".

You may also want to have

<trust level="Full" originUrl="" />

while you don't want to be dealing with security yet. It you're not in the
server domain or your client machine has limited rights for some other
reason you may have similar problems.

If it still doesn't work you want to check your machine.config on the server
machine(C:\WINDOWS\Microsoft.NET\Framework\v1.1.4322\CONFIG) to see if the
setting isn't sealed with an allowOverride="true".

This is also good reading if you can't get enough:
http://msdn.microsoft.com/library/default.asp?url=/library/en-us/dnnetsec/html/THCMCh09.asp

Martin.
 
M

Martin

I discovered something just now that may help.

If your web.config file is found insuitable for some reason you may get this
deceptive error message that goes on about the customErrors setting.

I added a <processModel> tag and was urged to set customErrors to Off, which
is total bull-shit in this context. customErrors has been Off all the time,
I had never a problem with getting error information and it has nothing to
do with the problem. Removing the <processModel> tag made it work again.
Mind that I could hardly believe it and checked web.config for
well-formedness. It was well formed, the processModel element caused the
problem.

So if nothing seems to work, try starting with a clean web.config

Martin.
 

Ask a Question

Want to reply to this thread or ask your own question?

You'll need to choose a username for the site, which only take a couple of moments. After that, you can post your question and our members will help you out.

Ask a Question

Members online

Forum statistics

Threads
473,769
Messages
2,569,581
Members
45,056
Latest member
GlycogenSupporthealth

Latest Threads

Top