Classic ASP pages living among a ASP.NET Web App

M

mase

I've built a new ASP.NET web app with the CSLA framework. The site
runs fine with a small number of users, but once there is any traffic
the CPU spikes at 100%. I went through and made many updates to plug
various memory leaks. Glad that I did that and it probably helped out
some, but the issues still exists. The application was built the
proper scalable architecture but can't seem to handle the load. I've
been watching performance counters while load testing to figure things
out but have gotten no where so far.

My question is around using classic ASP pages inside the .NET web app.
I have isolated my DotNet application pool from other classic ASP-only
sites, as they should be. But I need to have some classic ASP pages
living among the ASP.NET application for redirecting bookmarks and
other hard-coded references to .asp pages.

Since they recommend that you keep Classic ASP web sites on separate
application pools from any .NET pools, is it a problem that a small
amount of classic pages live in my .NET app? Could the fight for
memory between the two different ISAPI handlers cause 100% CPU usage?
If it is recommended that classic ASP pages should not live inside an
ASP.NET web application, how can I keep my classic ASP pages available
for bookmarks and such?

Thanks
 
M

Michael Nemtsev

Hello mase,

Any entries in EventLog?

---
WBR, Michael Nemtsev [.NET/C# MVP].
My blog: http://spaces.live.com/laflour
Team blog: http://devkids.blogspot.com/

"The greatest danger for most of us is not that our aim is too high and we
miss it, but that it is too low and we reach it" (c) Michelangelo

m> I've built a new ASP.NET web app with the CSLA framework. The site
m> runs fine with a small number of users, but once there is any traffic
m> the CPU spikes at 100%. I went through and made many updates to plug
m> various memory leaks. Glad that I did that and it probably helped out
m> some, but the issues still exists. The application was built the
m> proper scalable architecture but can't seem to handle the load. I've
m> been watching performance counters while load testing to figure
m> things out but have gotten no where so far.
m>
m> My question is around using classic ASP pages inside the .NET web
m> app. I have isolated my DotNet application pool from other classic
m> ASP-only sites, as they should be. But I need to have some classic
m> ASP pages living among the ASP.NET application for redirecting
m> bookmarks and other hard-coded references to .asp pages.
m>
m> Since they recommend that you keep Classic ASP web sites on separate
m> application pools from any .NET pools, is it a problem that a small
m> amount of classic pages live in my .NET app? Could the fight for
m> memory between the two different ISAPI handlers cause 100% CPU usage?
m> If it is recommended that classic ASP pages should not live inside an
m> ASP.NET web application, how can I keep my classic ASP pages
m> available for bookmarks and such?
m>
m> Thanks
m>
 
G

Guest

I've built a new ASP.NET web app with the CSLA framework. The site
runs fine with a small number of users, but once there is any traffic
the CPU spikes at 100%. I went through and made many updates to plug
various memory leaks. Glad that I did that and it probably helped out
some, but the issues still exists. The application was built the
proper scalable architecture but can't seem to handle the load. I've
been watching performance counters while load testing to figure things
out but have gotten no where so far.

My question is around using classic ASP pages inside the .NET web app.
I have isolated my DotNet application pool from other classic ASP-only
sites, as they should be. But I need to have some classic ASP pages
living among the ASP.NET application for redirecting bookmarks and
other hard-coded references to .asp pages.

Since they recommend that you keep Classic ASP web sites on separate
application pools from any .NET pools, is it a problem that a small
amount of classic pages live in my .NET app? Could the fight for
memory between the two different ISAPI handlers cause 100% CPU usage?
If it is recommended that classic ASP pages should not live inside an
ASP.NET web application, how can I keep my classic ASP pages available
for bookmarks and such?

Thanks

Why do you think it's because of ASP, maybe it's because of ASP.NET?

Try to find what is the most critical activity
 
M

mase

Not much. Some OutOfMemory exceptions and a few other seemingly
trivial .NET exceptions. One in particular that seems weird:

Exception type: HttpException
Exception message: Path 'OPTIONS' is forbidden.

Any ideas?
 
M

mase

Why do you think it's because of ASP, maybe it's because of ASP.NET?
Try to find what is the most critical activity


I don't know that it's ASP, just trying to rule that out. I knew about
the Application Pools needing to be separate so I wasn't sure if
having them coexist in one web application was problematic?

I'm not sure what you mean what the most "critical" activity is? As in
what is most resource intensive? Or what pages are requested the most?
 
G

Guest

I don't know that it's ASP, just trying to rule that out. I knew about
the Application Pools needing to be separate so I wasn't sure if
having them coexist in one web application was problematic?

I'm not sure what you mean what the most "critical" activity is? As in
what is most resource intensive? Or what pages are requested the most?

You have a memory leak somewhere. Check date/time in the event log
when OutOfMemory is occured, check IIS log for that time to find what
was requested by users in that time (or before). Hopefully, you can
find some pages there. Check the code of these pages, (if you destroy
objects, if there no loops with no end, etc). Also try to use
Performance counters, and monitor the processes to determine which
process consumed your memory
 
M

Michael Nemtsev

Hello mase,

Use the profiling tools to find out what happens

---
WBR, Michael Nemtsev [.NET/C# MVP].
My blog: http://spaces.live.com/laflour
Team blog: http://devkids.blogspot.com/

"The greatest danger for most of us is not that our aim is too high and we
miss it, but that it is too low and we reach it" (c) Michelangelo

m> Not much. Some OutOfMemory exceptions and a few other seemingly
m> trivial .NET exceptions. One in particular that seems weird:
m>
m> Exception type: HttpException
m> Exception message: Path 'OPTIONS' is forbidden.
m> Any ideas?
m>
Hello mase,

Any entries in EventLog?

---
WBR, Michael Nemtsev [.NET/C# MVP].
My blog:http://spaces.live.com/laflour
Team blog:http://devkids.blogspot.com/
"The greatest danger for most of us is not that our aim is too high
and we miss it, but that it is too low and we reach it" (c)
Michelangelo
 
B

bruce barker

asp.net applications (at least until iis 7.0) do not run inside iis.
they are hosted by a seperate process, that uses named pipes to talk to
iis. asp is hosted directly by iis but can be run outside if hosted by
com+/mts.

the point is asp and asp.net never run in the same process, so a memory
eak in one does not effect the other. asp.net application pools keep one
asp.net web site from effecting each other.

there is nothing wrong with having asp and asp.net in the same vdir.

-- bruce (sqlwork.com)
 
M

mase

asp.net applications (at least until iis 7.0) do not run inside iis.
they are hosted by a seperate process, that uses named pipes to talk to
iis. asp is hosted directly by iis but can be run outside if hosted by
com+/mts.

the point is asp and asp.net never run in the same process, so a memory
eak in one does not effect the other. asp.net application pools keep one
asp.net web site from effecting each other.

there is nothing wrong with having asp and asp.net in the same vdir.

-- bruce (sqlwork.com)

Bruce,

Thanks for your input, however what your telling me is just about
opposite of everything I've read. I have been told to isolate the two
and never let them run under the same application pool.

Also, don't ASP.NET applications run inside the w3wp.exe process in
IIS 6? I realize that IIS keeps each websites boundaries distinct to
keep them from interfering with each other, but what about when there
are ASP pages inside my .NET application. The two types of ASP pages
living side-by-side?
 
M

mase

Hello mase,

Use the profiling tools to find out what happens

---
WBR, Michael Nemtsev [.NET/C# MVP].
My blog:http://spaces.live.com/laflour
Team blog:http://devkids.blogspot.com/

"The greatest danger for most of us is not that our aim is too high and we
miss it, but that it is too low and we reach it" (c) Michelangelo

m> Not much. Some OutOfMemory exceptions and a few other seemingly
m> trivial .NET exceptions. One in particular that seems weird:
m>
m> Exception type: HttpException
m> Exception message: Path 'OPTIONS' is forbidden.
m> Any ideas?
m>
Hello mase,
Any entries in EventLog?
---
WBR, Michael Nemtsev [.NET/C# MVP].
My blog:http://spaces.live.com/laflour
Team blog:http://devkids.blogspot.com/
"The greatest danger for most of us is not that our aim is too high
and we miss it, but that it is too low and we reach it" (c)
Michelangelo

Michael,

I have been using the profiling tools to figure out what's going on,
but I can't nail it down. When I see 100% CPU spike, how can I
identify the bottleneck using performance counters?
 
M

mase

You have a memory leak somewhere. Check date/time in the event log
when OutOfMemory is occured, check IIS log for that time to find what
was requested by users in that time (or before). Hopefully, you can
find some pages there. Check the code of these pages, (if you destroy
objects, if there no loops with no end, etc). Also try to use
Performance counters, and monitor the processes to determine which
process consumed your memory

Alexey,

I am fairly certain that I have plugged up every possible memory leak
in my application, I've combed through the code very thoroughly to
find places where I was properly releasing resources and updated
that. I will look again. I was thinking that the pages being
requested during or before the OutOfMemory exception don't necessarily
point to those pages right? The leak could be gradual and will error
out this way when any new page is requested and there isn't enough
memory to load it. Right?

I have been staring at performance counters for many days now. I know
that the process that is consuming my memory is w3wp.exe. How can I
narrow this down further? When the CPU spike occurs, what how can I
determine the culprit?

Thanks
 
M

Michael Nemtsev

Hello mase,

Well, I suppose you need to make a dupm of your working process and exam
it to understand what happens

I recomend to look through the Tess blog http://blog.msdn.com/tess, where
she described how to do this

---
WBR, Michael Nemtsev [.NET/C# MVP].
My blog: http://spaces.live.com/laflour
Team blog: http://devkids.blogspot.com/

"The greatest danger for most of us is not that our aim is too high and we
miss it, but that it is too low and we reach it" (c) Michelangelo

m> I have been using the profiling tools to figure out what's going on,
m> but I can't nail it down. When I see 100% CPU spike, how can I
m> identify the bottleneck using performance counters?
m>
 

Ask a Question

Want to reply to this thread or ask your own question?

You'll need to choose a username for the site, which only take a couple of moments. After that, you can post your question and our members will help you out.

Ask a Question

Members online

No members online now.

Forum statistics

Threads
473,756
Messages
2,569,534
Members
45,007
Latest member
OrderFitnessKetoCapsules

Latest Threads

Top