Está en la página 1de 15


Debugging and Error Handling

3.1 Why do I get Error message "Unable to Start Debugging" Error Message
When You Send Debug HTTP Request?

This problem can occur if there is some error in the web.config file. To resolve this check for the well-formedness of

this document.

For more details refer PRB: "Unable to Start Debugging" Error Message When You Send Debug HTTP Request

3.2 Why do I get the error message "Unable to start debugging on the web
server..." when I debug?

There is a possibility that there is no web.config file for the project or there is no Execute permission for the project.

If you already have a web.config file, double check it's well-formedness.

If the web.config file is missing, add one to the directory that contains the ASP.NET application. You can copy one

from the numerous samples applications available with the framework installation.

Make sure that the following section reads like this:


On the other hand, if your project already has a Web.config file, and the above section is set as specified, follow

these steps to set the Execute Permissions property for the project folder:

1. Start Internet Services Manager, and then click the project that you are trying to debug.

2. Right-click the project, and then click Properties.

3. Click the Directory tab.

4. If None is selected in the Execute Permissions list, click Scripts only, and then click Apply

3.3 When I Debug ASP.NET Applications I get error message "Access Is

Denied. Check the DCOM Configuration Settings for the Machine Debug

You can get this error if you are user who is trying to remotely debug and you are not a member of the Debugger

Users group on the Microsoft Internet Information Server (IIS) server. To add the appropriate user to the Debugger

Users group, follow these steps on the Web server:

1. From the Windows Start menu, point to Programs, point to Administrative Tools, and then click Computer


2. In the left pane, click to expand the Computer Management, System Tools, and Local Users and Groups


3. Click Groups, and then double-click Debugger Users.

4. In the Debugger Users Properties dialog box, click Add.

5. In the Select Users or Groups dialog box, select the appropriate user, and then click OK.

6. Click OK to exit the Debugger Users Properties dialog box.

7. Close the Computer Management explorer.

3.4 On Trying to Debug an application, by the F5 key I get the error: "Error
while trying to run project: Unable to start debugging on the web server.
Catastrophic failure"?

This issue occurs if the account that is used to run the ASP.NET Worker process (by default, the ASPNET user

account) is not assigned the "Impersonate a client after authentication" user right in the "Local Security Policy"

settings. This issue may occur when you install Microsoft Visual Studio .NET after you install Windows 2000 Service

Pack 4 (SP4) on the computer. In this situation, the ASPNET account is not assigned the "Impersonate a client after

authentication" user right in the "Local Security Policy" settings.To resolve it, please use the method at: To work

around the problem, manually assign Impersonate a client after authentication to the IWAM account. To do so,

follow these steps:

1. Click Start, point to Programs, point to Administrative Tools, and then click Domain Controller Security


2. Click Security Settings.

3. Click Local Policies, and then click User Rights Assignment.

4. In the right pane, double-click Impersonate a client after authentication.

5. In the Security Policy Setting window, click Define these policy settings.

6. Click Add, and then click Browse.

7. In the Select Users or Groups window, select the IWAM account name, click Add, and then click OK.

8. Click OK, and then click OK again.

9. To enforce an update of computer policy, type the following command: secedit /refreshpolicy

machine_policy /enforce

10. At a command prompt, type iisreset. In case your server is a Domain Controller Refer PRB: "Catastrophic
Failure" Error Message When You Try to Debug an ASP.NET Application on Windows 2000 Domain Controller

3.5 How to configure my project for debugging ASP Code?

Access the Project properties window.

Select the Configuration Properties for debugging then in right Pane, under the debugger node select true for Enable

ASP debugging.

3.6 In Visual Studio .NET, whenever I try to debug my ASP.NET application

I'm not able to stop the debugger on my breakpoints. Why?

Your ASP.NET project is not setup for debugging.

1. Open up the project's properties window and set the "Enable ASP.NET Debugging" option.

2. Open up your web.config file and make sure the Compilation tag's debug attribute is set to true.

<compilation defaultLanguage="vb" debug="true" />

3. Make sure the account you are logged in as and the ASP.NET Worker process is in the local "Debugger

Users" group.

For more information refer :

• PRB: Visual Studio .NET Debugger Does Not Stop on Breakpoints When You Debug ASP.NET Pages

• INFO: Common Errors When You Debug ASP.NET Applications in Visual Studio .NET

3.7 Why do I get error message "Unable to start debugging on the web
server. The debugger is not properly installed. Run setup to install or repair

the debugger. Would you like to disable future attempts to debug ASP.NET
pages for this project ? "?

If someone has run a lockdown or other security tool on the Web server, the DEBUG method may have been


Go into IIS manager to the Web application's properties and Directory >Configuration (button) > Mappings >

Application mappings.

Check that for .aspx extensions, you allow GET,HEAD,POST,DEBUG

Of course you need to be a member of the Debuggers group on the remote server. To resolve error

1. Right-click the Project Name in Solution Explorer, and then click Properties.

2. In the left pane of Properties, click to select Configuration Properties.

3. Click to select Debugging.

4. In the right pane, change the value of Enable Unmanged Debugging to True (on the drop-down list).

For more details refer PRB: Error Message: Unable to Start Debugging. Unable to Start Program ...

3.8 How do I debug JavaScript and other script code in my application using
Visual Studio .Net?

1) In IE go to Tools/Internet Options.../Advanced Tab and clear the "Disable Script Debugging" check box


2) In VS.Net in your project properties dialog, select "Debugging" under "Configuration Properties" and make sure

that "Enable ASP.Net Debugging" is turned on.

3) You can then set break points in script code in VS.Net in custom script files or the application aspx file.

4) VS.Net should give you detailed debugging information for variables in the scope just like other high-level


3.9 What are the different exception-handling approaches that can be used in

• Using try, catch and finally block in the code

• Using the Error event procedures at the Page, Application or Global levels

• Using the Server Object's GetLastError and ClearError methods

3.10 Why do I get error message "Login failed for user '(null)'. Reason: Not
associated with a trusted SQL Server connection"?

This error usually indicates that SQLServer (or MSDE) is configured to use Windows Authentication. If you want to

use a SQL login, you will need to enable SQL Authentication (mixed mode authentication). For more details refer

PRB: ASP/ODBC/SQL Server Error 0x80040E4D "Login Failed for User '(Null)'"

3.11 Why do I get the Error Message "System.OutOfMemoryException:

Exception of type System.OutOfMemoryException was thrown."?

It means that the server is out of available memory. You probably have an infinite loop somewhere that's frantically

creating large objects, or you forgot to dispose of disposable objects and memory slowly leaked.

3.12 Why do I get the error message "Sql Server does not exists or access
denied " whenever I try to access the data on Sql server?

• The ASP.NET worker process doesn't have the correct permissions to connect to or write to the SQL Server

database. Either enable impersonation for users, or configure the ASP.NET worker process to run under the

SYSTEM account.

• The ASPNET account cannot establish a named pipes connection to the database server. Try using TCP/IP

instead of the Named Pipes protocol to connect to the database by adding "Network Library =dbmssocn" in

your connection string

For more information refer

• BUG: Named pipes do not work when worker process runs under ASPNET account

• Process and request identity in ASP.NET

3.13 Why do I get error message "It is already opened exclusively by another
user, or you need permission to view its data." when I try to open Access

The ASPNET worker process doesn't have the correct permissions to connect to or write to the Access database.

Either enable impersonation for users or configure the ASP.NET worker process to run under the SYSTEM account.

You can also grant read and write permissions for the "Everyone" group on the database and the database folder.

For more details refer

• PRB: Cannot connect to Access database from ASP.NET

• Process and request identity in ASP.NET

3.14 Why do I get the "HTTP 404 - File not found." error message as "The
page cannot be found.The page you are looking for might have been removed,
had its name changed, or is temporarily unavailable "?

The reason for this error can be

• The requested file has been renamed.

• The requested file has been moved to another location and/or deleted.

• The requested file is temporarily unavailable due to maintenance, upgrades, or other unknown causes.

• The requested file does not exist.

• IIS 6.0: The appropriate Web service extension or MIME type is not enabled.

To resolve this refer Common reasons IIS Server returns "HTTP 404 - File not found" error

3.15 When I install the Microsoft .NET Framework 1.1 on a computer that is
running Windows XP, and then you start Windows, the Welcome screen
appears. This screen prompts me to click your user name to start

When you install the .NET Framework 1.1, a hidden local user account that is named ASPNET is created. When you

start Windows, Windows treats the ASPNET local user account as an additional user account, although the ASPNET

user account is hidden. Therefore, the Welcome screen appears and prompts you to click your user name.

For more details refer KB 827072

3.16 Why do I get the error message "System.InvalidOperationException:

Application is restarting"?

This problem occurs because of some antivirus applications write back information to the files that they scan. Every

time a user changes the Web.config configuration file, the Global.asax file, or the contents of the Bin folder, the

application should restart to incorporate these changes. Because antivirus scanning changes cannot be distinguished

from the user's file changes, the application restarts when the antivirus software scans these folders.

Note This problem may occur even when no error is returned. If the virus-scanning software triggers change

notifications, every change notification is doubled at the very least: one real change notification and an additional

change notification from the antivirus software some time later. For more information refer PRB: Random application

restarts with "Application is restarting" error in ASP.NET

3.17 How can I see the Trace messages?

For Page Level Tracing specify the Page Directive as

<%@ Page Trace="true" %>

You can view the page on which trace is enabled to true to see the details.

For Application Level Tracing modify web.config as

<trace enabled="true" requestLimit="10" pageOutput="false" traceMode="SortByTime" localOnly="true" />

You can view the Trace at http://<server>/<webApplicationNam>/trace.axd

3.18 I have installed ASP.NET hotfix and I find that Startup Type of the
ASP.NET Session State Service is set to Manual.Why?

Microsoft has acknowledged this as a Bug

To set the StartUp Type as desired refer following steps

1. In Control Panel, open Administrative Tools.

2. Click Services. The Services window appears.

3. Expand the Name column so that the complete name of each service appears.

Note A Startup Type column displays the current Startup Type value for each service.

4. Double-click the ASP.NET State Service service. The ASP.NET State Service Properties window appears.

5. On the General tab, click one of the following options in the Startup type list:

o Manual

o Automatic

o Disabled

6. Click Apply, and then click OK to save your settings.

In the Services window, notice your changes to the Startup Type in the Startup Type column.

3.19 Why do I get the error message "aspnet_wp.exe (PID: XXXX) was
recycled because it was suspected to be in a deadlocked state "?

This problem might occur because ASP.NET limits the number of worker threads and completion port threads that a

call can use to execute requests. For more details refer PRB: Contention, poor performance, and deadlocks when

you make Web service requests from ASP.NET applications

You could control the deadlock detection by changing machine.config setting in

<processModel responseDeadlockInterval="..." ... />

3.20 How to display errors using Page_Error event of Page Object?


Private Sub Page_Error(ByVal sender As Object, ByVal e As System.EventArgs) Handles MyBase.Error

End Sub


//In InitializeComponent
this.Error += new System.EventHandler (this.Page_Error );

private void Page_Error(object sender, System.EventArgs e )
Server.ClearError ();

In the Same manner handle the Errors in the Application_Error event in global.asax

3.21 How to redirect the user to the friendly error-handler page when an
Application error occurs?

Modify web.config as

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

The configuration section supports an inner <error> tag that associates HTTP status codes with custom error pages.

For example:

<customErrors mode="On" defaultRedirect="genericerror.htm">

<error statusCode="404" redirect="pagenotfound.aspx"/>
<error statusCode="403" redirect="noaccess.aspx"/>

For more details refer <customErrors> Element

3.22 How to Enable Remote Debugging on Windows XP Service Pack 2?

To enable remote debugging on Microsoft® Windows® XP SP2 platforms, the Internet Connection Firewall (ICF)

must be configured as follows:

• If ICF is in Shielded mode, you will need to perform appropriate actions so that it is no longer in Shielded


• If ICF is on, a few ports need to be opened and permissions must be granted to Microsoft® Visual

Studio® and other executables that are involved in the remote debugging.

• If IFC is off, no firewall configuration is necessary.

• In addition, if the user running Visual Studio is not an Administrator on the remote machine, DCOM settings

need to be configured.

Refer How to Enable Remote Debugging on Windows XP Service Pack 2

3.23 Why do I get error message ""Parser Error Message: Access is denied:
Source Error: Line xxx : ""?

The actual problem is because of the Microsoft Indexing Services which scans the Temporary ASP.NET Files and

while doing so, the system puts a lock on the same.

To resolve this, the following steps need to be carried out:-

1. Start - Settings - Control Panel - Administrative Tools - Computer mangement.

2. Expand the services and applications node and select the Indexing service node.

3. Expand the Indexing Service Node and then select and expand the System Node.

4. Right click on Directories and select new directory. browse the path to the temporary files


5. Select the temporary files. give ok and then select the "NO" in the Include in index radiobutton.

6. give ok and then stop and start the indexing service.

3.24 Why do I get the error message "A potentially dangerous Request.Form
value was detected from the client "?

Sounds like you are running version 1.1 of ASP.NET / .NET Framework, which added a new security feature called

request validation. Request validation looks at every request and determines if it could be a possible CSS (Cross Site

Scripting) attack. By default Request Validation is on for every page.

If you wish to allow users to post arbitrary HTML to you site you need to turn off request validation:

<%@Page ValidateRequest="false" %>

For more information check out : Protecting Against Script Exploits in a Web Application on MSDN

3.25 How can I test performance of the Web application?

One approach is to use the Microsoft Web Application Stress tool. It allows you to simulate load on a web server and

can be used to test performance. The following kb article covers how to use it (including where to download it from).;en-us;313559

3.26 How can I resolve the error message "Cannot access file '...' because it
is being used by another process"?

You receive this error message if the following conditions are true:

• The assembly that is specified in the error message is a signed assembly and is not installed in the Global

Assembly Cache (GAC); instead, the assembly is in the Bin directory of the ASP.NET Web application. -and-

• Your ASP.NET Web application has just been restarted.

For more details refer PRB: "Can not Access File 'AssemblyName' Because It Is Being Used by Another Process"
Error Message in ASP.NET

3.27 Why do I get the Compiler Error Message: "CS0246: The type or
namespace name '...' could not be found (are you missing a using directive or
an assembly reference?) "?

This problem typically comes when:

• You do not have class with that name in your project

• You add the class later on and run the project without compiling

• You have the class but you do not specify the namespace via Imports or using keyword

3.28 Why do I get the error message "Compiler Error Message: CS1595"?

This problem occurs because the C# compiler does not have permission to access the folders in the path to the

mscorlib.dll assembly

To resolve this problem, modify the compiler definition for the C# compiler to include the /nostdlib option. The

/nostdlib option prevents the import of the mscorlib.dll assembly, which defines the entire System namespace. To

include the /nostdlib option in the C# compiler definition on a computer, follow these steps:

1. Open the Machine.config file, and then locate the section.

2. In the definition for C#, add the compilerOptions attribute with a value of /nostdlib. For example:

<compiler language="c#;cs;csharp"
type="Microsoft.CSharp.CSharpCodeProvider, System,
compilerOptions="/nostdlib" />

For more details refer PRB: "Compiler Error Message: CS1595" Error Message When You Use the C# Compiler to

Compile an ASP.NET Resource

3.29 I get error message at runtime "Value null was found where an instance
of an object was required" when using Application state variables. why?

Application State variables must be initialized in C# before any operation is performed on them. For example.:

You need to assign value to Counter state variable before performing the case (int)Session["Counter"].

3.30 I installed Windows 2003 Standard Edition, then VS.NET and SQL Server
2K with SP3. When I build web project connecting to the database in VS.NET,
the compliler gives me the following error:Login failed for user 'NT

Add NT AUTHORITY\NETWORK SERVICE account to SQL Server , which will be in the local group. Make sure to give

it the required database access and permissions

3.31 Why do I get error message "System.Threading.ThreadAbortException:

Thread was being aborted" while using Response.Redirect?

Response.Redirect will cause a ThreadAbort exception. To resolve this use




Response.Redirect(url,false) ;

3.32 Why do I get the error message "BC30451: Name 'ConfigurationSettings'

is not declared"?

This is because you have not added namespace System.Configuration

3.33 What is a parser error?

Its basically a syntax error in your ASPX page. It happens when your page is unreadable for the part of ASP.NET

that transforms your code into an executable.

3.34 Whenever I browse to one of my ASP.NET web pages, Internet Explorer

keeps on asking me if I want to download it, or it just displays the ASPX
source. Why?

IIS does not have the correct mapping for the ASPX file extension. This can happen if you install IIS after installing

the .NET Framework, or if you uninstalled and reinstalled IIS.

To repair IIS mappings for ASP.NET, you can run the Aspnet_regiis.exe utility.

For more information check out KB306005

3.35 Why am I getting the error: "Type '(OleDb or SQL)Connection' is not


You get this error when you have not imported the following namespaces in your code in the aspx file:

System.Data.SqlClient or System.Data.OleDb.

3.36 Why do I get the Error message "Operation must use an updateable

If you're getting an error when Inserting or Updating an MS Access Database ('Operation must use an updateable

query'), that's because the ASPNet user account needs the correct permissions on the directory where the database

resides To fix this in Windows 2K:

• (Go into Accessories/Computer Management/Local Users & Groups/users You will see that there's an

ASPNet user. )

• Right click on the directory where your database is - choose properties - Then the security tab - then click

on permissions.

• Add the ASPNet user to the shared section

• Then, make sure it has 'Change' rights -

• Click Apply and you should be working fine then.

3.37 When compiling I get "Could not copy temporary files to the output
directory" or "The process cannot access the file because it is being used by
another process" error messages. Why?

Visual Studio .NET is unable to copy your DLLs from Bin directory to a temporary ASP.NET files folder. This is due to

having a trailing backslash in root web application, or in a virtual directory with child directories marked as Web

applications. For more information refer KB Q319991

3.38 Why do I get error message "Failed to Start Monitoring Directory

Changes" when i try to browse ASP.NET page?

1. The ASPNET worker process doesn't have "Read & Execute", " List Folder Contents", " Read permissions"

permissions to detect file changes in Web.Config, Machine.config, Bin files, or Cach dependency files.

2. Or one of the directory names in the hierarchy of that file path is greater than eight characters long.

For more information refer

• PRB: "Failed to Start Monitoring Directory Changes" Error Message When You Browse to ASP.NET Page

• FIX: "Failed to start monitoring directory changes" error message when you browse to an ASP.NET page

3.39 Why do I get Compilation error "<Control> is not a member of


You may get this error if you have not give runat=server for a tag

3.40 How to see the Message in the Output window using ASP.NET?


System.Diagnostics.Trace.Write("Your message")


System.Diagnostics.Trace.Write("Your message");

3.41 How can I use Tracing in Custom Components?

In Custom Components, you can use tracing if you reference the System.Web namespace and use the

HttpContext.Current object to get a reference to the current context. Eg:


System.Web.HttpContext.Current.Trace("xxx", "Message")


System.Web.HttpContext.Current.Trace("xxx", "Message");

Also make sure to set the following directives:

For Page Level Tracing set Page Directive as

<%@ Page Trace="true" %>

For Application Level Tracing modify corresponding web.config as

<trace enabled="true" requestLimit="10" pageOutput="false" traceMode="SortByTime" localOnly="true" />