|
web
newsgroups
|
|||||||||||||||||||||||
|
|||||||||||||||||||||||
Live multi-user debugging? Help!written in VS2003. I've encountered a problem where a database record is being updated with the wrong value intermittently. So I debug the page. I step through the code and the value Session("PersonID") changes right before my eyes for no apprent reason. Now, this is where it gets really weird. I'm attached to the process on the web server and debugging. I give up and close the web browser. Fine. I'm yakking away to a co-worker about the problem the nsuddenly out of nowhere, VS stops at a breakpoint. ??? I closed the browser and haven't clicked on anything. So I examine the personID. It's 2259. Not the one I was working with. So I hit continue. A moment later, it stops at the same breakpoint by itself and the personID is now 3278. Continue. Moments later... It's picking up live people using the site! How can I debug this application if live people are constantly changing the state of the debugging session? This is why it's writing the wrong values, the session values seem to be changing at will based on who's logged into the site. Umm.. help? :) Is this by design? Is it an internal problem with the web server or VS or.... Any help much appreciated, thanks! Tom wilson wrote:
> I have an asp.net app running off of a W2003 server. It's being That's a symptom of having "maximum number of worker processes" for an > written in VS2003. I've encountered a problem where a database record > is being updated with the wrong value intermittently. So I debug the > page. > > I step through the code and the value Session("PersonID") changes > right before my eyes for no apprent reason. application pool being more than 1. To have more than 1, you have to use out-of-process session state storage. Useful search keyword: aspnet_state. Andrew Yes, that sounds like it. But I'm having much trouble finding any
information on it. Searches for aspnet_state return hundreds of pages telling me what it does (from the 'is it a worm?' aspect). I searched for "Maximum number of worker processes". Google returns 3 hits. There's an excellent page out there that tells me how to change the values but not WHAT I should chnage those values to. Like: "DWORD value set to the number of requests after which a new worker process will be launched to take the place of the current one. The default is infinite, a keyword indicating that the process should not be restarted. " Do I change this? What do I change it to? What about the other values? Do I change those and to what? Does anyone know of any intelligible information on the topic? Thanks for the reply! On Tue, 4 Jul 2006 17:32:39 +0100, "Andrew Morton" <a**@in-press.co.uk.invalid> wrote: Show quoteHide quote >Tom wilson wrote: >> I have an asp.net app running off of a W2003 server. It's being >> written in VS2003. I've encountered a problem where a database record >> is being updated with the wrong value intermittently. So I debug the >> page. >> >> I step through the code and the value Session("PersonID") changes >> right before my eyes for no apprent reason. > >That's a symptom of having "maximum number of worker processes" for an >application pool being more than 1. To have more than 1, you have to use >out-of-process session state storage. Useful search keyword: aspnet_state. > >Andrew > Tom wilson wrote:
> Yes, that sounds like it. But I'm having much trouble finding any <snip>> information on it. Searches for aspnet_state return hundreds of pages > telling me what it does (from the 'is it a worm?' aspect). I searched > for "Maximum number of worker processes". Google returns 3 hits. > There's an excellent page out there that tells me how to change the > values but not WHAT I should chnage those values to. Like: > Do I change this? What do I change it to? What about the other /Do/ you have "Maximum number of worker processes" set to more than one? You > values? Do I change those and to what? might get answers from people more knowledgable in this are than me (not difficult) in microsoft.public.inetserver.iis, but here's what I think the settings do: ------------------------- Recycling:- Recycle worker processes: tear it down and start again just in case it's gone messy somewhere. IME, in-process session-state gets destroyed when it recycles a worker process. Memory recycling: well, if it comes to that, either add more RAM or find the memory leak. (Talking about memory, if the site seems sluggish, have a look under the performance tab in Task Manager. If the total commit charge is greater than the total physical memory then it wants more RAM.) Performance:- Idle timeout: shut it down after a while so that the next request after that takes longer as it has to wake up again. This might also interfere with session state (if so, look out for the session state timeout for the web site - the setting you get to by right-clicking the web site, then Properties->Home Directory tab->Configuration...->Options tab). Request queue limit: reduce DOS attack effect. CPU monitoring: what to do if it goes mad for too long. Web garden: if one worker process gets stuck (see Recycling above), you can have another one going so that people can still use the web site. Of course, I should have put timeouts around all my requests to other services so it didn't get stuck in the first place.. Health:- Dunno, but if it ain't broke, don't fix it. Identity:- You might want to run the service under a different account from the default, like you do with SQL Server etc. I've never tried that. ---------------------------- This article tells it all w.r.t. session state:- http://msdn2.microsoft.com/en-us/library/ms178586.aspx Oh - no it doesn't. It doesn't mention that with out-of-process session-state you must make sure that everything you store in a Session() variable must be <Serializable()> as in <Serializable()> Public Class basketCentral Implements IDisposable ' keeps it happy ...... And another thing: before wiggling all the bits, manually back up the config by right-clicking on the computer in IIS Manager and going through All Tasks..., and then back it up again when you've got it working satisfactorily. If you have to re-install IIS, only the manually backed up configs survive. HTH Andrew Thanks, I'm building a new web server for these domains so I'll apply
thisi n the new construction. On Wed, 5 Jul 2006 11:17:14 +0100, "Andrew Morton" <a**@in-press.co.uk.invalid> wrote: Show quoteHide quote >Tom wilson wrote: >> Yes, that sounds like it. But I'm having much trouble finding any >> information on it. Searches for aspnet_state return hundreds of pages >> telling me what it does (from the 'is it a worm?' aspect). I searched >> for "Maximum number of worker processes". Google returns 3 hits. >> There's an excellent page out there that tells me how to change the >> values but not WHAT I should chnage those values to. Like: ><snip> >> Do I change this? What do I change it to? What about the other >> values? Do I change those and to what? > >/Do/ you have "Maximum number of worker processes" set to more than one? You >might get answers from people more knowledgable in this are than me (not >difficult) in microsoft.public.inetserver.iis, but here's what I think the >settings do: >------------------------- >Recycling:- >Recycle worker processes: tear it down and start again just in case it's >gone messy somewhere. IME, in-process session-state gets destroyed when it >recycles a worker process. > >Memory recycling: well, if it comes to that, either add more RAM or find the >memory leak. (Talking about memory, if the site seems sluggish, have a look >under the performance tab in Task Manager. If the total commit charge is >greater than the total physical memory then it wants more RAM.) > > >Performance:- >Idle timeout: shut it down after a while so that the next request after that >takes longer as it has to wake up again. This might also interfere with >session state (if so, look out for the session state timeout for the web >site - the setting you get to by right-clicking the web site, then >Properties->Home Directory tab->Configuration...->Options tab). > > >Request queue limit: reduce DOS attack effect. >CPU monitoring: what to do if it goes mad for too long. > >Web garden: if one worker process gets stuck (see Recycling above), you can >have another one going so that people can still use the web site. Of course, >I should have put timeouts around all my requests to other services so it >didn't get stuck in the first place.. > > >Health:- >Dunno, but if it ain't broke, don't fix it. > > >Identity:- >You might want to run the service under a different account from the >default, like you do with SQL Server etc. I've never tried that. >---------------------------- > >This article tells it all w.r.t. session state:- >http://msdn2.microsoft.com/en-us/library/ms178586.aspx > >Oh - no it doesn't. It doesn't mention that with out-of-process >session-state you must make sure that everything you store in a Session() >variable must be <Serializable()> as in > <Serializable()> Public Class basketCentral > Implements IDisposable ' keeps it happy > ...... > >And another thing: before wiggling all the bits, manually back up the config >by right-clicking on the computer in IIS Manager and going through All >Tasks..., and then back it up again when you've got it working >satisfactorily. If you have to re-install IIS, only the manually backed up >configs survive. > >HTH > >Andrew > Tom wilson wrote:
> I'm yakking away to a co-worker about the problem the nsuddenly out of Sounds to me like a Threading issue, with VS stopping on the breakpoints > nowhere, VS stops at a breakpoint. ??? I closed the browser and > haven't clicked on anything. So I examine the personID. It's 2259. > Not the one I was working with. So I hit continue. A moment later, > it stops at the same breakpoint by itself and the personID is now > 3278. Continue. Moments later... in your code as each /executing Thread/ passes through them. > It's picking up live people using the site! "Fun", isn't it?> How can I debug this application if live people are constantly And, IMHO, this is just one reason why I would never recommend trying to > changing the state of the debugging session? "Debug" a live application /even if/ you have some way of limiting access to only those individuals that need to be in there at any point in time! However, wouldn't each Client be accessing their /own/ Session data? Certainly if there's /any/ possibility of one person seeing data held in another person's Session information then I, for one, will /not/ be moving to ASP.Net /any/ time soon. > This is why it's writing the wrong values, the session values seem Well, /if/ we're talking about the Session object, that would be the > to be changing at will based on who's logged into the site. case, wouldn't it? HTH, Phill W. Weird, the application in question hosts 2 events. The first event
involves about 50 people and works flawlessly. The second event involves over 2500 people and there are errors throughout the database. Same code, same site. I'm setting up a new production server and a seperate development server and I'll keep this in mind. Thanks! On Wed, 05 Jul 2006 12:59:00 +0100, "Phill W." <p-.-a-.-w-a-r-d@o-p-e-n-.-a-c-.-u-k> wrote: Show quoteHide quote >Tom wilson wrote: > >> I'm yakking away to a co-worker about the problem the nsuddenly out of >> nowhere, VS stops at a breakpoint. ??? I closed the browser and >> haven't clicked on anything. So I examine the personID. It's 2259. >> Not the one I was working with. So I hit continue. A moment later, >> it stops at the same breakpoint by itself and the personID is now >> 3278. Continue. Moments later... > >Sounds to me like a Threading issue, with VS stopping on the breakpoints >in your code as each /executing Thread/ passes through them. > >> It's picking up live people using the site! > >"Fun", isn't it? > >> How can I debug this application if live people are constantly >> changing the state of the debugging session? > >And, IMHO, this is just one reason why I would never recommend trying to >"Debug" a live application /even if/ you have some way of limiting >access to only those individuals that need to be in there at any point >in time! > >However, wouldn't each Client be accessing their /own/ Session data? >Certainly if there's /any/ possibility of one person seeing data held in >another person's Session information then I, for one, will /not/ be >moving to ASP.Net /any/ time soon. > >> This is why it's writing the wrong values, the session values seem >> to be changing at will based on who's logged into the site. > >Well, /if/ we're talking about the Session object, that would be the >case, wouldn't it? > >HTH, > Phill W.
dotnet activex equivalent?
Is microsoft awaring VB.Net too hard to maintain? Can I use an asterisk in the "Imports" statement? Transferring data between datatables and between datareader and datatable Another Printing Question Opacity on form Creating an array of objects when the object type is not known at design time Retrieving the System date and time settings SQL update statment, using ACCESS yes/no Refreshing datagridview |
|||||||||||||||||||||||