Monday, February 23, 2009

.Net technical faqs

How do I specify break-points in my code?
Once you follow the steps that will turn on script debugging in IE and VS.Net, you can either set break points in VS.Net include the "debugger;" statement anywhere in your script code.

When I Debug ASP.NET Applications I get error message "Access Is Denied. Check the DCOM Configuration Settings for the Machine Debug Manager"?
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 Management.
2. In the left pane, click to expand the Computer Management, System Tools, and Local Users and Groups nodes.
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.

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 Policy.
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
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
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.
3. Make sure the account you are logged in as and the ASP.NET Worker process is in the local "Debugger Users" group.

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
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 removed.
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).

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 options.
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 languages.

What are the different exception-handling approaches that can be used in ASP.NET?
• 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

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

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

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 mdb?
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.

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 mode.
• 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.

How to display errors using Page_Error event of Page Object?
VB.NET
Private Sub Page_Error(ByVal sender As Object, ByVal e As System.EventArgs) Handles MyBase.Error
Response.Write(Server.GetLastError().ToString)
Server.ClearError()
End Sub
C#
//In InitializeComponent
this.Error += new System.EventHandler (this.Page_Error );
//
private void Page_Error(object sender, System.EventArgs e )
{
Response.Write(Server.GetLastError().ToString());
Server.ClearError ();
}

How to redirect the user to the friendly error-handler page when an Application error occurs?
Modify web.config as
The configuration section supports an inner tag that associates HTTP status codes with custom error pages.

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 management.
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 asp.net files c:\winnt\microsoft.net\framework\v1.1.4322\.
5. Select the temporary asp.net 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.

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:

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

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.

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

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.

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

How can I see the Trace messages?
For Page Level Tracing specify the Page Directive as
You can view the page on which trace is enabled to true to see the details.
For Application Level Tracing modify web.config as
You can view the Trace at http:////trace.axd

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.

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
VB.NET
Response.Redirect(url,false)
C#
Response.Redirect(url,false) ;

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"].
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 compiler gives me the following error:Login failed for user 'NT AUTHORITY\NETWORK SERVICE',why?
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

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.

Why am I getting the error: "Type '(OleDb or SQL)Connection' is not defined."?
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.

Why do I get the Error message "Operation must use an updateable query"?
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.

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

Why do I get the error message "BC30451: Name 'ConfigurationSettings' is not declared"?
This is because you have not added namespace System.Configuration

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 Cache dependency files.
2. Or one of the directory names in the hierarchy of that file path is greater than eight characters long.

Why do I get Compilation error " is not a member of "?
You may get this error if you have not give runat=server for a tag

How can the default focus can be set when a error occurs?
We can set SetFocusOnError="true" for the ASP.NET validators, So that the first control with the validation error will receive the default focus when the form is submitted.
First Name: *
Last Name: *
Here SetFocusOnError is set to true for the validation control, so that the TextBoxes gets focused when it is empty.

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

Why do I get the error message "BC30451: Name 'ConfigurationSettings' is not declared"?
This is because you have not added namespace System.Configuration
How can I have a particular Web page in an ASP.NET application which displays its own error page.

This can be done by setting the ErroPage attribute of Page Directive or ErrorPage property of Page Class to the desired Custom Error Page

Why do I get error message "Unable to start debugging on the web server. The server does not support debugging of ASP.NET or ATL Server applications. ..."?
You would get this error if the application mappings for ASP.NET file name extensions (such as .aspx) are not configured correctly in Microsoft Internet Information Services (IIS).
To resolve this go to C:\Windows Directory\Microsoft.Net\Framework\Version and type aspnet_regiis -i to configure the required application mappings correctly
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 Policy.
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.
To enforce an update of computer policy, type the following command: secedit /refreshpolicy machine_policy /enforce
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

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.
• Open up the project's properties window and set the "Enable ASP.NET Debugging" option.
• Open up your web.config file and make sure the Compilation tag's debug attribute is set to true.

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

How to see the Message in the Output window using ASP.NET?
VB.NET
System.Diagnostics.Trace.Write("Your message")
C#
System.Diagnostics.Trace.Write("Your message");

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:
VB.NET
System.Web.HttpContext.Current.Trace("xxx", "Message")
C#
System.Web.HttpContext.Current.Trace("xxx", "Message");

No comments: