Solved

Event ID: 1090 -> Failed to execute request because QueryInterface for ASP.NET runtime failed. Error: 0x80004005 Unspecified error

Posted on 2004-09-21
9
1,081 Views
Last Modified: 2013-11-25
Does anybody know exactly what this error means?

This is happening in IIS 6.0.
There is a Web Services Application running with quite a few web services.
I have searched the net and found nothing that gives me any clue as to what this error means.
I have tried to monitor the machine at the time the exceptions are occurring and the processor spikes each time the error occurs.
Any help greatly appreciated.

More specific error Info.

Event Type:      Error
Event Source:      ASP.NET 1.1.4322.0
Event Category:      None
Event ID:      1090
Date:            21.9.2004
Time:            09:28:41
User:            N/A
Computer:      PHLX
Description:
Failed to execute request because QueryInterface for ASP.NET runtime failed. Error: 0x80004005 Unspecified error  

For more information, see Help and Support Center at http://go.microsoft.com/fwlink/events.asp.

this exception follows... IIS restarts.

Event Type:      Error
Event Source:      ASP.NET 1.1.4322.0
Event Category:      None
Event ID:      1000
Date:            21.9.2004
Time:            09:28:41
User:            N/A
Computer:      PHLX
Description:
aspnet_wp.exe  (PID: 2960) stopped unexpectedly.

For more information, see Help and Support Center at http://go.microsoft.com/fwlink/events.asp.

0
Comment
Question by:tomasX2
9 Comments
 
LVL 17

Expert Comment

by:AerosSaga
ID: 12111460
After some walking around in the config files
(machine.config) I found this:

<processModel enable="true" timeout="Infinite" idleTimeout="Infinite"
shutdownTimeout="0:00:05" requestLimit="Infinite" requestQueueLimit="5000"
restartQueueLimit="10" memoryLimit="60" webGarden="false"
cpuMask="0xffffffff" userName="machine" password="AutoGenerate"
logLevel="Errors" clientConnectedCheck="0:00:05"
comAuthenticationLevel="Connect" comImpersonationLevel="Impersonate"
responseRestartDeadlockInterval="00:09:00"
responseDeadlockInterval="00:03:00" maxWorkerThreads="25"
maxIoThreads="25"/>

Just change responseDeadlockInterval to 00:10:00 like this:

<processModel enable="true" timeout="Infinite" idleTimeout="Infinite"
shutdownTimeout="0:00:05" requestLimit="Infinite" requestQueueLimit="5000"
restartQueueLimit="10" memoryLimit="60" webGarden="false"
cpuMask="0xffffffff" userName="machine" password="AutoGenerate"
logLevel="Errors" clientConnectedCheck="0:00:05"
comAuthenticationLevel="Connect" comImpersonationLevel="Impersonate"
responseRestartDeadlockInterval="00:09:00"
responseDeadlockInterval="00:10:00" maxWorkerThreads="25"
maxIoThreads="25"/>

excerpt taken from:
http://www.dotnet247.com/247reference/msgs/21/106511.aspx

Regards,

Aeros
0
 
LVL 5

Author Comment

by:tomasX2
ID: 12111535
I don´t think this is the problem that I´m experiencing...

Error ID: 1003
"aspnet_wp.exe (PID: 4060) was recycled because it was suspected to be in a
deadlocked state. It did not send any responses for pending requests in the
last 180 seconds."

Whereas I am looking for....

Error ID: 1090
Failed to execute request because QueryInterface for ASP.NET runtime failed. Error: 0x80004005 Unspecified error

although they both have a corresponding

Error ID: 1000
aspnet_wp.exe  (PID: 2960) stopped unexpectedly.

We were not experiencing this prior to updating IIS from 5.0 to 6.0 ( We did not do a clean install of IIS, but an update )
0
 
LVL 25

Expert Comment

by:nauman_ahmed
ID: 12111870
As a workaround, I will recommend creating a dummy web service with one or two functions. Call this service from a test asp.net application and see what is its response. Also have a look at the Application Pools node in the IIS 6.0 MMC and try to assign a separate application pool for your application.

HTH, Nauman.
0
 
LVL 25

Expert Comment

by:nauman_ahmed
ID: 12111910
If its a database application, you should also consider assigning appropriate permissions for ASPNET account and make sure to restart the server once and use the command iisreset when you make a change in the application pool.

Best, Nauman.
0
Do You Know the 4 Main Threat Actor Types?

Do you know the main threat actor types? Most attackers fall into one of four categories, each with their own favored tactics, techniques, and procedures.

 
LVL 5

Author Comment

by:tomasX2
ID: 12112004
Hello Nauman...

I neglected to mention that this error is only occurring a few times a day.
There are a few hundred web method and 99.9% of the time everything is perfect. We have not yet found a pattern to the errors but they do come in clusters...

Also because our IT guys did not do a clean install of IIS 6 but updated from IIS 5 there is no Application Pools node in the MMC, however we are planning to do a reinstall from scratch.

On the second comment ... yes quite a few of the Web Methods are accesssing databases( Sql Server and Oracle) and quite a few are accessing COM object and other .Net objects.
The application is not running under the ASPNET account but a local user which has necessary permissions... we also did some permission exercises yesterday and a full reboot which I had hoped would fix the problem but did not.
0
 
LVL 25

Accepted Solution

by:
nauman_ahmed earned 250 total points
ID: 12112144
0
 
LVL 2

Assisted Solution

by:netjkus
netjkus earned 250 total points
ID: 12112179
We had some issues on performance and we had to look into the machine.config. While microsoft recommends a value (which is much different than the default values - night & Day), it might hit the performance & some issues like these. Check this article. ("ASP.NET Tuning" in Chapter 17, "Tuning .NET Application Performance."). this may not solve this issue, but could improve.

e.g.  Max IO threads, 20 is default, while they recommend 100!!

Configuration setting  -- Default value (.NET Framework 1.1)  --- Recommended value
maxconnection -- 2  --- 12 * #CPUs
maxIoThreads -- 20  --- 100
maxWorkerThreads -- 20 -- 100
minFreeThreads -- 8  ---88 * #CPUs
minLocalRequestFreeThreads --- 4 -- - 76 * #CPUs


:::: More ::::

Threading Explained
ASP.NET processes requests by using threads from the .NET thread pool. The thread pool maintains a pool of threads that have already incurred the thread initialization costs. Therefore, these threads are easy to reuse. The .NET thread pool is also self-tuning. It monitors CPU and other resource utilization, and it adds new threads or trims the thread pool size as needed. You should generally avoid creating threads manually to perform work. Instead, use threads from the thread pool. At the same time, it is important to ensure that your application does not perform lengthy blocking operations that could quickly lead to thread pool starvation and rejected HTTP requests.

Formula for Reducing Contention
The formula for reducing contention can give you a good empirical start for tuning the ASP.NET thread pool. Consider using the Microsoft product group-recommended settings that are shown in Table 6.1 if the following conditions are true:

You have available CPU.
Your application performs I/O bound operations such as calling a Web method or accessing the file system.
The ASP.NET Applications/Requests In Application Queue performance counter indicates that you have queued requests.
Table 6.1: Recommended Threading Settings for Reducing Contention

Configuration setting  -- Default value (.NET Framework 1.1)  --- Recommended value
maxconnection -- 2  --- 12 * #CPUs
maxIoThreads -- 20  --- 100
maxWorkerThreads -- 20 -- 100
minFreeThreads -- 8  ---88 * #CPUs
minLocalRequestFreeThreads --- 4 -- - 76 * #CPUs

To address this issue, you need to configure the following items in the Machine.config file. Apply the recommended changes that are described in the following section, across the settings and not in isolation. For a detailed description of each of these settings, see "Thread Pool Attributes" in Chapter 17, "Tuning .NET Application Performance."

Set maxconnection to 12 * # of CPUs. This setting controls the maximum number of outgoing HTTP connections that you can initiate from a client. In this case, ASP.NET is the client. Set maxconnection to 12 * # of CPUs.
Set maxIoThreads to 100. This setting controls the maximum number of I/O threads in the .NET thread pool. This number is automatically multiplied by the number of available CPUs. Set maxloThreads to 100.
Set maxWorkerThreads to 100. This setting controls the maximum number of worker threads in the thread pool. This number is then automatically multiplied by the number of available CPUs. Set maxWorkerThreads to 100.
Set minFreeThreads to 88 * # of CPUs. This setting is used by the worker process to queue all the incoming requests if the number of available threads in the thread pool falls below the value for this setting. This setting effectively limits the number of requests that can run concurrently to maxWorkerThreads - minFreeThreads. Set minFreeThreads to 88 * # of CPUs. This limits the number of concurrent requests to 12 (assuming maxWorkerThreads is 100).
Set minLocalRequestFreeThreads to 76 * # of CPUs. This setting is used by the worker process to queue requests from localhost (where a Web application sends requests to a local Web service) if the number of available threads in the thread pool falls below this number. This setting is similar to minFreeThreads but it only applies to localhost requests from the local computer. Set minLocalRequestFreeThreads to 76 * # of CPUs.
Note   The recommendations that are provided in this section are not rules. They are a starting point. Test to determine the appropriate settings for your scenario. If you move your application to a new computer, ensure that you recalculate and reconfigure the settings based on the number of CPUs in the new computer.
If your ASPX Web page makes multiple calls to Web services on a per-request basis, apply the recommendations.

The recommendation to limit the ASP.NET runtime to 12 threads for handling incoming requests is most applicable for quick-running operations. The limit also reduces the number of context switches. If your application makes long-running calls, first consider the design alternatives presented in the "Avoid Blocking on Long-Running Tasks" section. If the alternative designs cannot be applied in your scenario, start with 100 maxWorkerThreads, and keep the defaults for minFreeThreads. This ensures that requests are not serialized in this particular scenario. Next, if you see high CPU utilization and context-switching when you test your application, test by reducing maxWorkerThreads or by increasing minFreeThreads.

The following occurs if the formula has worked:

CPU utilization increases.
Throughput increases according to the ASP.NET Applications\Requests/Sec performance counter.
Requests in the application queue decrease according to the ASP.NET Applications/Requests In Application Queue performance counter.
If using the recommended settings does not improve your application performance, you may have a CPU bound scenario. By adding more threads you increase thread context switching. For more information, see "ASP.NET Tuning" in Chapter 17, "Tuning .NET Application Performance."
0
 
LVL 5

Author Comment

by:tomasX2
ID: 12136659
Thanks for you input guys...
I have been trying various configurations... and I it doesn´t look this is a configuration issue....
I am starting to think that the problem stems from a COM object that I´m invoking in C#... but I can´t be sure...

Does anyone know what Event 1090 from asp.net refers to....

Event ID: 1090 -> Failed to execute request because QueryInterface for ASP.NET runtime failed.

I consider myself pretty good at finding answers by googling but I hit a brick wall here. no info whatsoever... just a list of possible errors on msdn with no more info.

I would love to know the nature of this exception
0
 

Expert Comment

by:lhquang
ID: 12890575
if u use ADO in asp.net and want avoid "0x80004005 Unspecified error",remember always use System.Data.DataSet instead of using System.Data.IDataReader... :-)
0

Featured Post

How to improve team productivity

Quip adds documents, spreadsheets, and tasklists to your Slack experience
- Elevate ideas to Quip docs
- Share Quip docs in Slack
- Get notified of changes to your docs
- Available on iOS/Android/Desktop/Web
- Online/Offline

Join & Write a Comment

Suggested Solutions

Today is the age of broadband.  More and more people are going this route determined to experience the web and it’s multitude of services as quickly and painlessly as possible. Coupled with the move to broadband, people are experiencing the web via …
For a while now I'v been searching for a circular progress control, much like the one you get when first starting your Silverlight application. I found a couple that were written in WPF and there were a few written in Silverlight, but all appeared o…
It is a freely distributed piece of software for such tasks as photo retouching, image composition and image authoring. It works on many operating systems, in many languages.
This is Part 3 in a 3-part series on Experts Exchange to discuss error handling in VBA code written for Excel. Part 1 of this series discussed basic error handling code using VBA. http://www.experts-exchange.com/videos/1478/Excel-Error-Handlin…

705 members asked questions and received personalized solutions in the past 7 days.

Join the community of 500,000 technology professionals and ask your questions.

Join & Ask a Question

Need Help in Real-Time?

Connect with top rated Experts

18 Experts available now in Live!

Get 1:1 Help Now