PROFILE 2 -Web application has not loaded the .net Framework
- Date: 12 Dec 2006 (review)
- Versions Affected: ANTS Profiler 2-2.7.1
This can be caused by one of the following:The web application /MyApp/ has not loaded the .NET Framework. Please ensure that /MyApp/ is an ASP .NET web application. Please note that accessing cached web pages will not load the .net framework.
- The web browser is set to work offline. In Internet Explorer, this setting can be turned on and off via the File menu.
- The .aspx web page has caching enabled. This can be done by modifying the .aspx page source with a directive such as:
<%@OutputCache Duration="360" VaryByParam="none" %>This will make IIS send a saved copy of the page and no code will actually be run by .net Framework.
- On computers running Internet Information Server version 5, ANTS Profiler has failed to log on and impersonate the ASPNET user
- The web application had only loaded static pages, never any dynamic content
- The Profiler's core component has crashed before it could initiate connection with the ANTS Profiler program interface
Is the Profiler Waiting for Connection?
Once the application being profiled invokes the .NET runtime by running some dynamic managed code, it will signal ANTS Profiler via the .NET profiling interface via a named pipes connection. Until this point, ANTS Profiler will display in the lower-left corner waiting for connection. Once the connection is established, this changes to profiling memory (or performance) of application....
If ANTS Profiler is still waiting for connection, and you know that your application is running managed code, then there a few things that you can check.
Check that the ASPNET user login was successful
When ANTS Profiler is profiling an ASP .NET application in IIS 5, ANTS Profiler needs to log in as the ASPNET user and modify the user environment.
First, find out which Windows user is configured to run ASP .NET code. By default, this user is a local machine user called ASPNET, but this can be changed by modifying the machine.config file (%systemroot%\microsoft.net\framework\vx.x.xxxx\config). The relevant section is called processModel. This is where the ASPNET user is specified, the default being MACHINE with a password of AUTOGENERATE. For the purposes of the rest of this topic, we will refer to this user as the ASPNET user.
If the user is a domain user, please make sure that you are logged on to the windows domain of which it is a member, otherwise a connection cannot be made to the Active Directory Server to retrieve the ASPNET user's Security Identifier (SID).
Check this account in your Computer Management console (or Active Directory if it's a domain account) to make sure that the account is not locked out or expired. If there is an account problem, however, this is normally a critical error that will stop ANTS Profiler.
Check that the ASPNET user profile can be modified
The next step is to check the system's application event log for any errors with a source of USERENV for the ASPNET user. Some things that can happen here are:
- The login failed. Normally this results in an error from Profiler
- The ASPNET user does not have a log on as a batch job user right
- The user profile for the ASPNET cannot be written to because it is a temporary or mandatory roaming profile
While you are examining the event viewer, it may also be useful to look for application errors from ANTS Profiler, specifically 'Unable to co-create Profiler'. This indicates that the profiling component encountered a critical error.
Check the processModel section of machine.config
On .NET Framework 2.0 systems, there is also a problem when users want to change the default ASPNET user, in that the processModel is disabled. If you change the ASPNET user in the machine.config file in .NET Framework 2.0, then please be sure to enable the processModel as well, for instance:
If the processModel is not enabled, ANTS Profiler attempts to log in as "username", but the ASPNET is probably running under the default ASPNET account, so the Profiler is never loaded into the application being profiled.<processModel username="user" password="password" enable="true">
There are many reasons why ANTS Profiler could potentially report that your application has not loaded the .NET Framework. An incorrectly configured .NET Framework, invalid ASPNET user accounts, and your network environment all potentailly play a role in causing this problem, as well as general application errors in the application being profiled.