Clients Losing Session

G

Guest

I would appreciate it if anybody can help with a issue I am having in an
ASP.NET application that is timing out before a process has been completed.

The scenario
ASP.NET application under IIS 5 runs a crystal report (which has a lot of
complex formatting) and returns over 6,000 pages. The time to export this
report to PDF using Crystal Reports Directly on the server is 83 minutes.
But when the export to PDF is done through the Web Application at exactly 60
minutes the session terminates. The web application returns the user to the
login page (using custom authentication) logged out. In an older version of
this web application the same report at exactly 60 minutes returns a “Page
Not Found†Error or “Server Application Not Availableâ€. This version was not
using any Authentication. I need to increase the time to about 90 minutes or
later so the user will be able to get the completed PDF file.

Details
IIS has the connection timeout at 900 seconds (or 15 minutes) and ASP.NET
session timeout to 20 minutes. Both the Web.Config and the Machine.Config has
the session timeout at 20 minutes.
But as I understand this, these values are used only when the session /
application has been idle for this amount of time. There has to be another
setting that controls the amount of time the user can stay logged into a
given session or the amount of time a user can stay connected to the server
(For 60 minutes as demonstrated by the behavior).
I’m not changing any of the session properties in code.
There are no error log messages.
In addition to this when the session terminates for the user. If I monitor
the ASP.NET Worker Process thread that is performing the export it continues
to run until the export has been completed.


Web.Config
<sessionState mode="InProc" stateConnectionString="tcpip=127.0.0.1:42424"
sqlConnectionString="data source=127.0.0.1;Trusted_Connection=yes"
cookieless="false" timeout="20"/>

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

I’ve looked everywhere I can think of for this timeout configuration. Can
somebody please help with an idea of where else to look for the timeout
setting.or what I can do in code to prevent the session from terminating
before the process has terminated.
Thank You for your help ahead of time.
 
B

bruce barker

the browser will also timeout. you can not control this. your approach is
wrong. you should start a background thread (probably a pool) to build the
report, then have the page poll for the results.

-- bruce (sqlwork.com)


| I would appreciate it if anybody can help with a issue I am having in an
| ASP.NET application that is timing out before a process has been
completed.
|
| The scenario
| ASP.NET application under IIS 5 runs a crystal report (which has a lot of
| complex formatting) and returns over 6,000 pages. The time to export this
| report to PDF using Crystal Reports Directly on the server is 83 minutes.
| But when the export to PDF is done through the Web Application at exactly
60
| minutes the session terminates. The web application returns the user to
the
| login page (using custom authentication) logged out. In an older version
of
| this web application the same report at exactly 60 minutes returns a "Page
| Not Found" Error or "Server Application Not Available". This version was
not
| using any Authentication. I need to increase the time to about 90 minutes
or
| later so the user will be able to get the completed PDF file.
|
| Details
| IIS has the connection timeout at 900 seconds (or 15 minutes) and ASP.NET
| session timeout to 20 minutes. Both the Web.Config and the Machine.Config
has
| the session timeout at 20 minutes.
| But as I understand this, these values are used only when the session /
| application has been idle for this amount of time. There has to be
another
| setting that controls the amount of time the user can stay logged into a
| given session or the amount of time a user can stay connected to the
server
| (For 60 minutes as demonstrated by the behavior).
| I'm not changing any of the session properties in code.
| There are no error log messages.
| In addition to this when the session terminates for the user. If I
monitor
| the ASP.NET Worker Process thread that is performing the export it
continues
| to run until the export has been completed.
|
|
| Web.Config
| <sessionState mode="InProc" stateConnectionString="tcpip=127.0.0.1:42424"
| sqlConnectionString="data source=127.0.0.1;Trusted_Connection=yes"
| cookieless="false" timeout="20"/>
|
| Machine.Config
| <processModel enable="true" timeout="Infinite" idleTimeout="Infinite"
| shutdownTimeout="0:00:05" requestLimit="Infinite" requestQueueLimit="5000"
| restartQueueLimit="10" memoryLimit="60" webGarden="false"
| cpuMask="0xffffffff" userName="SYSTEM" password="AutoGenerate"
| logLevel="Errors" clientConnectedCheck="0:00:05"
| comAuthenticationLevel="Connect" comImpersonationLevel="Impersonate"
| responseDeadlockInterval="00:03:00" maxWorkerThreads="20"
maxIoThreads="20"/>
|
| I've looked everywhere I can think of for this timeout configuration. Can
| somebody please help with an idea of where else to look for the timeout
| setting.or what I can do in code to prevent the session from terminating
| before the process has terminated.
| Thank You for your help ahead of time.
|
 
G

Guest

Thank You for your quick replay
This is another argument to get my boss to re-write this application.
 
T

tomBond

Hi.
Umm...If I had an "old fashioned" modem connection why in the worl
would I want to wait for an hour online to get that report and pay m
phone company zillions of euros? If there's absolutely no othe
alternative, I understand. But are you sure that you have considere
other alternatives too to generate that report?
Is it a -must- that it must be generated on the fly? Why couldn't it b
generated before hand so that it could be downloadable to your client
requiring that report? If it has to be generated on the fly because o
time bound criteria, you've lost the battle already 'cause it runs no
for an hour. Because of that it will never contain accurate data pe
minute or so...

I would do this so, that I'd generate a background task for repor
generating (you don't need to invent the wheel again, there's *a lot
of alternatives with this, for example windows scheduling). After th
task has completed, the report would be transferred to such a plac
where it can be downloaded. And then there could be an aspx-page whic
creates dynamically an list of links, which point to your reports. Thu
I had an setup that doesn't need manual intervention, nor manua
updating links pointing to reports :


-
tomBon
 
G

Guest

Hello mister,

What tool you use for monitor the the ASP.NET Worker Process thread ? Can I
download it ?

Thanks and greetings
 

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

Forum statistics

Threads
473,982
Messages
2,570,185
Members
46,737
Latest member
Georgeengab

Latest Threads

Top