classic asp IIS 7.5 sql server performance - asp-classic

We have been using this external program thats using classic asp, and sql server express 2008R2 on windows server 2008R2 running IIS 7.5
It has been running fine until the last month when almost each page is taking atleast 2 minutes to load. If i reboot the web server, everything works fine for the first few mins until it goes back to same old issues.
It appears that the app is resetting some setting after 2 minutes and then its able to respond. I am not sure what setting that would be.
I tried to set up failed trace request, and found that it never finished or rather the log file never capture the error. (even after increasing the log file size. I tried this multiple times)
The program is using SQL server native client 10 to talk to sql server. I have played around with connection pooling, changing the app pool from classic to integrated and vice versa. It does not seem to be a db issue, as the activity monitor does not show too much consumption and sql server wait stat that i see is ASYNC_NETWORK_IO and PREEMPTIVE_OS_WAITFORSINGLEOBJECT which relates to the fact on how the client is processing the results sent from the db server.
I am looking for suggestions on how to debug this issue. My guess has to be the way the connection from asp to sql server.
Thanks in advance.

Related

Queued responses from SQL server with ASP website hosted in IIS

We're running an ASP website in IIS 7.5.
The site has a SQL backend database, running on a seperate SQL server.
There is a 10Gb fiber connection between both of these servers via a switch.
We're seeing some delays in requests to the SQL server being answered.. so like a request to add a record might go through within 0.25 seconds for one user, but then the same task might take 6 seconds for another user, or even the same user but later on in the day.
I haven't as of yet been able to identify any pattern to the performance issues, except to say it seems as if something is getting queued somewhere.
The machines themselves are virtual machines hosted on HyperV hypervisors.
They have an absolute abundence or memory and CPU resource allocated to them.
The network on the hypervisors is bonded for redundancy, and VMQ is disabled.
I've had perfmon running on both servers for quite a while and can't see anything obvious that points me in a particular direction.
Has anyone seen this sort of behavour before?
Thanks in advance

Application "freezes" and requests queue is full

I have an asp.net application running on IIS 7.5 , Windows Server 2008 R2 – using an application pool in classic mode, framework version 4.
Sometimes I am running into the following problem:
The application can work for a few days, but all of a sudden I receive an http error 503 – server unavailable.
When I look at the application pool it seems to be running (I see it started), but it actually FREEZES – every request to it is responded with 503.
At the worker processes list (in the IIS manager) I see a lot of requests unhandled.
It's important to mention that other asp.net application running under other application pools are working just fine which means the IIS is working fine and the problem is only in this specific application pool.
When I researched the http error logs I saw the following error logs in the Windows\System32\LogFiles\HTTPERR folder:
In regular settings when everything works fine I noticed records of
"Timer_ConnectionIdle" (a normal thing from what I have read).
At a certain times I notice an appearance of "Client_Reset" records.
15 minutes after the "Client_Reset" errors started->records of "QueueFull appear".
In order to work with the application I am doing an iisreset (I guess a recycle for the pool will be enough also).
I will be happy to receive any help or suggestions.
EDIT:
It's important to mention that nothing related gets written to the IIS logs, or the System and Application logs. This error occurs before.
Without more information about your problem, most quick fix will be to Configure Recycling Settings for an Application Pool. Since your problem is about request queues, you can choose option After reaching a number of requests.
When I encounter HTTP 500 errors, I find that enabling IIS Tracing is very helpful. Below is a link that describes the process of enabling tracing and then reviewing the trace. The first section of the site describes how to install IIS, so you probably want to skip to the section labeled "Enable Failed-Request Tracing."
Troubleshooting Failed Requests Using Tracing in IIS 7
Edit:
Since you're getting a QueueFull error, you may want to monitor the request queues. The easiest way to do this is using Perfmon. On the server with IIS, open Performance Monitor and add the appropriate counters under "HTTP Service Request Queue." In your case, "Current Request Queue" for the ailing Application Pool would likely be of value.

Computer/Application having trouble and getting slow while accessing Sql server through LAN, Network is fine

I have an web project in asp.net in one of my computers which are connected internally through LAN. The database is in Sql Server kept in another computer. The LAN is connected well. There is no connection error in my programming also. But sometimes in this particular system the page is taking long time to be open, sometime it is showing some exceptions(not everytime again and again). What can be the problem? How can it be solved?
The same project is running good in other computers as well.
My network seems ok, as I can acccess the computer hosting SQL server.
You're just having connection problems.
The page waits for the SQL query's answer to return, and it won't load until it gets the answer.
Check your LAN's connection by pinging between the computer with the project and the SQL server.
If this really is the problem, then the exceptions are probably time-outs.

"Maximum number of connections already opened" Error Message

I developed a web site using Sybase PowerBuilder V12.0 Classic and the output is deployed and converted to ASP.Net (ASPX) web pages.
The Database connection is configured and used properly as the data is displayed in the web application using DataWindow Objects and is a direct connection with sybase Database Server using Dsedit Tool and No ODBC is used.
I edited The Sybase Databse configurations related to remote servers and connections to be more than the default value which was 25 although the real number of users will not exceed that in the same time.
Recently I received an error message when some users connected to the web site and after making valid logins:-
The Error Message is:-
Maximum number of connections already opened
ct_connect(): user api layer: external
error: The maximum number of
connections have already been opened.
I am confused about the causes of that error as I think I had made all configurations needed and I checked evey option and setting related to the Number of Connections in The Sybase Database server, The Application Deployment Settings in Sybase PowerBuilder V12.0 Classic, and The IIS Settings.
I use Windows Server 2003 and the IIS version is 6.0 in the Web Server.
I appreciate any suggestion or hint to solve that problem and Thanks in Advance :)
The error message says it all really. There are too many concurrent connections to your database.
Perhaps your application doesn't close all of them. If you do not close database connections, connections can remain opened for some time.
Now, I never developed for Sybase, but that is what is usually the case with MSSQL server when this error occurs.

Why does my Windows Form app timeout when repeatedly hitting IIS 7 externally?

I've got a very simple Windows Form app that hits an IIS 7 site about 2000 times in the space of a few seconds (using threads).
When I run that app on the server itself, using either localhost or the ip address, everything is totally fine.
However, when I run the app on my dev box, using the ip address, I get an error from the "GetResponse" method:
The operation has timed out
The App can definitely connect to the site, because it consistently either starts throwing the timeout error after 10 or so hits (no more than 11), or it throws the timeout error immediately.
What's going on?
It's hitting IIS 7 on a Windows Server 2008 VM (external box), Windows Firewall is OFF.
My App is running locally on my dev box as the admin.
cheers
I believe the default thread pool size for IIS is about 10 threads. You're overloading that single server.
Are you doing performance testing? Do you expect that many requests, that fast, in production?

Resources