473,624 Members | 2,302 Online
Bytes | Software Development & Data Engineering Community
+ Post

Home Posts Topics Members FAQ

Monitoring concurrent users in ASP.NET v1.1 app

I have an ASP.NET application which my company sells comercially. We license
on a concurrent user model, but we currently rely on the "honor" system for
the customers to give us their best guess as to the maximum number of
concurrent users they will need. We do this because, so far, we have not
been able to come up with any mechanism for reliably monitoring how many
users have active sessions and locking out users until a license becomes
"free".

We've tried using the Session_Start and Session_End events, but these events
don't fire reliably and we end up not accuratley counting the active
sessions. We even had a Microsoft engineer trying for several days to help
us with this problem but he could not come up with a solution either.

Has anyone succesfully implemented a concurrent license model on an ASP.NET
application? The system has to "free" a license when the user just closes
IE, or when the session tmes out. If anyone has done this I would appreciate
being pointed in the right direction.
--
Thanks,

Bill Manring

Dec 31 '05 #1
6 3335
Bill Manring wrote:
I have an ASP.NET application which my company sells comercially. We
license on a concurrent user model, but we currently rely on the
"honor" system for the customers to give us their best guess as to
the maximum number of concurrent users they will need. We do this
because, so far, we have not been able to come up with any mechanism
for reliably monitoring how many users have active sessions and
locking out users until a license becomes "free".

We've tried using the Session_Start and Session_End events, but these
events don't fire reliably and we end up not accuratley counting the
active sessions. We even had a Microsoft engineer trying for several
days to help us with this problem but he could not come up with a
solution either.


This is not something that can be accomplished reliably. Session_End doesn't
fire deterministical ly. Therefore, in order to know for sure how many users
there are, you would need to have the users authenticate and maintain that
count yourself.

--
Jim Cheshire
=============== =============== ==
Blog: http://blogs.msdn.com/jamesche

Latest entry:
Getting the PID and TID of a COM Call

Describes how to get the PID of the
dllhost process a COM call is executing
in and how to locate the thread as well.

Dec 31 '05 #2
Thanks to Jim and Stan for the replies. I'll provide some more details.

We do authenticate users, so we can keep track when a user logs in. The
real problem is with keeping track of when the user stops using the
application. There can be several scenarios in which a user coudl "log out".
First, the user could use the log out functionality we provide, which they
rarely do. Second, most commonly, they simply close Internet Explorer. We
have been able to come up with some java script that captures the closing of
IE on the client and instantly aborts the session on the server immediately.
The third scenario would be that the browser sessions just times out.

Like Jim correctly states, the Session_End does not fire reliably, because
thsi would be the way to do this. If I'm not mistaken, the Application_Sta rt
and Application_End events fire when the application starts for the first
time, not every time a user starts a session.

It really appears that keeping track of concurrent users in an ASP.NET
application is something that one can not do. I find this hard to believe.

Anyone else have any good ideas?
--
Thanks,

Bill Manring
"Bill Manring" wrote:
I have an ASP.NET application which my company sells comercially. We license
on a concurrent user model, but we currently rely on the "honor" system for
the customers to give us their best guess as to the maximum number of
concurrent users they will need. We do this because, so far, we have not
been able to come up with any mechanism for reliably monitoring how many
users have active sessions and locking out users until a license becomes
"free".

We've tried using the Session_Start and Session_End events, but these events
don't fire reliably and we end up not accuratley counting the active
sessions. We even had a Microsoft engineer trying for several days to help
us with this problem but he could not come up with a solution either.

Has anyone succesfully implemented a concurrent license model on an ASP.NET
application? The system has to "free" a license when the user just closes
IE, or when the session tmes out. If anyone has done this I would appreciate
being pointed in the right direction.
--
Thanks,

Bill Manring

Jan 1 '06 #3
Bill Manring wrote:
Thanks to Jim and Stan for the replies. I'll provide some more
details.

We do authenticate users, so we can keep track when a user logs in.
The real problem is with keeping track of when the user stops using
the application. There can be several scenarios in which a user
coudl "log out". First, the user could use the log out functionality
we provide, which they rarely do. Second, most commonly, they simply
close Internet Explorer. We have been able to come up with some java
script that captures the closing of IE on the client and instantly
aborts the session on the server immediately. The third scenario
would be that the browser sessions just times out.


Bill,

The first thing you need to realize is that you're not going to be able to
do this as reliably as you'd like to. With that said, you could use a very
small sliding timeout, but you'll have to realize that you're going to have
inaccurate readings. If it were up to me, I'd take a different route. A web
application is just not conducive to this kind of architecture because of
its disconnected nature.

By the way, this is not a limitation of ASP.NET. It's simply the result of
the HTTP architecture.

--
Jim Cheshire
=============== =============== ==
Blog: http://blogs.msdn.com/jamesche

Latest entry:
Getting the PID and TID of a COM Call

Describes how to get the PID of the
dllhost process a COM call is executing
in and how to locate the thread as well.

Jan 1 '06 #4
Jim,

That is the conclusion I have been reluctantly coming to for several months
now. I was just hoping I was missing something.

--
Thanks,

Bill Manring
"Bill Manring" wrote:
Thanks to Jim and Stan for the replies. I'll provide some more details.

We do authenticate users, so we can keep track when a user logs in. The
real problem is with keeping track of when the user stops using the
application. There can be several scenarios in which a user coudl "log out".
First, the user could use the log out functionality we provide, which they
rarely do. Second, most commonly, they simply close Internet Explorer. We
have been able to come up with some java script that captures the closing of
IE on the client and instantly aborts the session on the server immediately.
The third scenario would be that the browser sessions just times out.

Like Jim correctly states, the Session_End does not fire reliably, because
thsi would be the way to do this. If I'm not mistaken, the Application_Sta rt
and Application_End events fire when the application starts for the first
time, not every time a user starts a session.

It really appears that keeping track of concurrent users in an ASP.NET
application is something that one can not do. I find this hard to believe.

Anyone else have any good ideas?
--
Thanks,

Bill Manring
"Bill Manring" wrote:
I have an ASP.NET application which my company sells comercially. We license
on a concurrent user model, but we currently rely on the "honor" system for
the customers to give us their best guess as to the maximum number of
concurrent users they will need. We do this because, so far, we have not
been able to come up with any mechanism for reliably monitoring how many
users have active sessions and locking out users until a license becomes
"free".

We've tried using the Session_Start and Session_End events, but these events
don't fire reliably and we end up not accuratley counting the active
sessions. We even had a Microsoft engineer trying for several days to help
us with this problem but he could not come up with a solution either.

Has anyone succesfully implemented a concurrent license model on an ASP.NET
application? The system has to "free" a license when the user just closes
IE, or when the session tmes out. If anyone has done this I would appreciate
being pointed in the right direction.
--
Thanks,

Bill Manring

Jan 1 '06 #5
Would it be possible to do something with ajax? Something like when
the user closes the window it calls a function that keeps track of the
users currently in the system. A couple articles to help you see what
i mean would be http://www.4guysfromrolla.com/webtech/100604-1.shtml
and http://ajax.schwarz-interactive.de/c...e/default.aspx.

I would think you would be able to do something like that, but then you
have a reliance on javascript being enabled as well.

HTH,
Darren Kopp
http://blog.secudocs.com/

Jan 1 '06 #6
Darren,

I will look into the ajax approach. Having javascript enabled is necessary
to run our application anyway, so that is not an issue. This is an Intranet
application, not a public internet site, so we can specify some requirements
for running the appliaction.

--
Thanks,

Bill Manring
"Darren Kopp" wrote:
Would it be possible to do something with ajax? Something like when
the user closes the window it calls a function that keeps track of the
users currently in the system. A couple articles to help you see what
i mean would be http://www.4guysfromrolla.com/webtech/100604-1.shtml
and http://ajax.schwarz-interactive.de/c...e/default.aspx.

I would think you would be able to do something like that, but then you
have a reliance on javascript being enabled as well.

HTH,
Darren Kopp
http://blog.secudocs.com/

Jan 1 '06 #7

This thread has been closed and replies have been disabled. Please start a new discussion.

Similar topics

1
3520
by: bluedolphin | last post by:
There seems to be a consensus that Access has a concurrent user limit of 200 users. I am working on a system that currently stands at approx. 1 gig and has a small number of users. However, there is a project on the horizon that I have been asked to implement (within 2 months) where there will potentially be 1200 users accessing the backend through a Cold Fusion Interface. Whenever, I have been looking at this many users, I have always...
1
2887
by: Krysa | last post by:
Access 2K, DAO, split front end and back end; back end on server. Regarding max of 255 concurrent users. Is it really users, or connections? How would a user have more than one connection to same back end? If I keep a bound form open (hidden) to maintain a persistent connection, in what circumstances would another connection be created? How do I count the number of connections to a back end? Inquiring minds want to know, will be very...
3
4438
by: mgPA | last post by:
Short: How can I limit the number of concurrent logins to Access (2000) DB? Long: I seem to be having the problem discussed in previous postings of having more than 9 or 10 concurrent logins. If I can limit the number of concurrent logins to 8 or 9, that would satisfy our needs. Thanks
8
4017
by: pnp | last post by:
Hi all, I've developed a win C# app that is actually database driven using SQL server 2000. The idea is that only one application will be installed on a server in a network and the program will be able to run at each client machine by just double-clicking the application executable through a network share. The program supports user logins. What I want to do is find a secure way to control the number of concurrent *users* using the...
0
2086
by: Jeff Reed | last post by:
I am experiencing the the problem outlined the below. Unfortunately, I am using WinXP and I not sure if I can apply the solution due to lack of security control Any feed back would be apreciated http://support.microsoft.com/default.aspx?scid=kb;EN-US;31795 FIX: "Failed to Start Monitoring Directory Changes" Error Message When You Browse to an ASP.NET Pag View products that this article applies to This article was previously...
9
3198
by: Tim D | last post by:
Hi, I originally posted this as a reply to a rather old thread in dotnet.framework.general and didn't get any response. I thought it might be more relevant here; anyone got any ideas? My questions are below... "David Good" wrote: > We have a network running both Win2k and Win2k3 webservers and our web sites > reside on a UNC network share that happens to be a Network Appliance NAS.
7
5066
by: =?Utf-8?B?Q2FybG8gRm9saW5p?= | last post by:
Hi, I implemented asynchronous calls to a web resource (using HttpWebRequest) from asp.net 2.0. The request it's made asyncronously (I see that beginGetResponse returns immediately). The number of worker thread and completionPortThreads are over 300. Making 200 calls I see that 100 are queued. There's a counter telling how much async calls are handled? How can I raise the number of request handled?
2
19311
by: mktselvan | last post by:
Hi, Existing running oracle application 11i (11.5.8) Database version is 8.1.7.4 There is any command / way to know the number of concurrent users for this application. select SESSIONS_MAX, SESSIONS_WARNING,
0
13317
amitpatel66
by: amitpatel66 | last post by:
There is always a requirement that in Oracle Applications, the Concurrent Program need to be execute programatically based on certain conditions/validations: Concurrent programs can be executed programatically either from UNIX or Oracle PLSQL. In this Section, I will be explaining about calling a Concurrent program from UNIX using the CONCSUB Command. Pre-requisite: 1. Concurrent Program should be registered in oracle Applications...
0
8177
by: Hystou | last post by:
Most computers default to English, but sometimes we require a different language, especially when relocating. Forgot to request a specific language before your computer shipped? No problem! You can effortlessly switch the default language on Windows 10 without reinstalling. I'll walk you through it. First, let's disable language synchronization. With a Microsoft account, language settings sync across devices. To prevent any complications,...
0
8681
Oralloy
by: Oralloy | last post by:
Hello folks, I am unable to find appropriate documentation on the type promotion of bit-fields when using the generalised comparison operator "<=>". The problem is that using the GNU compilers, it seems that the internal comparison operator "<=>" tries to promote arguments from unsigned to signed. This is as boiled down as I can make it. Here is my compilation command: g++-12 -std=c++20 -Wnarrowing bit_field.cpp Here is the code in...
0
8629
jinu1996
by: jinu1996 | last post by:
In today's digital age, having a compelling online presence is paramount for businesses aiming to thrive in a competitive landscape. At the heart of this digital strategy lies an intricately woven tapestry of website design and digital marketing. It's not merely about having a website; it's about crafting an immersive digital experience that captivates audiences and drives business growth. The Art of Business Website Design Your website is...
1
8341
by: Hystou | last post by:
Overview: Windows 11 and 10 have less user interface control over operating system update behaviour than previous versions of Windows. In Windows 11 and 10, there is no way to turn off the Windows Update option using the Control Panel or Settings app; it automatically checks for updates and installs any it finds, whether you like it or not. For most users, this new feature is actually very convenient. If you want to control the update process,...
0
8488
tracyyun
by: tracyyun | last post by:
Dear forum friends, With the development of smart home technology, a variety of wireless communication protocols have appeared on the market, such as Zigbee, Z-Wave, Wi-Fi, Bluetooth, etc. Each protocol has its own unique characteristics and advantages, but as a user who is planning to build a smart home system, I am a bit confused by the choice of these technologies. I'm particularly interested in Zigbee because I've heard it does some...
1
6112
isladogs
by: isladogs | last post by:
The next Access Europe User Group meeting will be on Wednesday 1 May 2024 starting at 18:00 UK time (6PM UTC+1) and finishing by 19:30 (7.30PM). In this session, we are pleased to welcome a new presenter, Adolph Dupré who will be discussing some powerful techniques for using class modules. He will explain when you may want to use classes instead of User Defined Types (UDT). For example, to manage the data in unbound forms. Adolph will...
1
2611
by: 6302768590 | last post by:
Hai team i want code for transfer the data from one system to another through IP address by using C# our system has to for every 5mins then we have to update the data what the data is updated we have to send another system
1
1793
muto222
by: muto222 | last post by:
How can i add a mobile payment intergratation into php mysql website.
2
1488
bsmnconsultancy
by: bsmnconsultancy | last post by:
In today's digital era, a well-designed website is crucial for businesses looking to succeed. Whether you're a small business owner or a large corporation in Toronto, having a strong online presence can significantly impact your brand's success. BSMN Consultancy, a leader in Website Development in Toronto offers valuable insights into creating effective websites that not only look great but also perform exceptionally well. In this comprehensive...

By using Bytes.com and it's services, you agree to our Privacy Policy and Terms of Use.

To disable or enable advertisements and analytics tracking please visit the manage ads & tracking page.