Execution Timeout Problem

G

greenb

Our asp.net web app uses a .NET component (DLL) in the bin directory to call
several stored procedures back to back to perform updates. They don't return
any data. Sometimes the total execution time can take 2-3 minutes, but even
though I have set the executionTimeout in web.config to a high number of
seconds (2400), the request will still time out after 90 seconds. The user
sees a Request timed out error. The app logs a ThreadAborted exception,
[Thread was being aborted].

The web app and the component are compiled in Release mode. I read that you
only have to set one property; executionTimeout or the ScriptTimeout
property in IIS, but not both. Is that true or false?

Thanks for your help,

Mark
 
B

Brock Allen

You should consider redesigning this long running work so the browser isn't
waiting for it to complete. So make a button that initiates the work, then
give the user the ability to refresh the page to see the pending work. To
initiate the work you'll have to kick off another thread somehow (so use
ThreadPool.QueueUserWorkItem, or manually create another thread; there are
pros and cons to each of these approaches). To monitor the pending work you'll
need some other status table in the DB where your user can see if the work
is complete. Once it is, update that table.

Anyway, just an idea on how to rework this long running task....

-Brock
DevelopMentor
http://staff.develop.com/ballen
 
G

greenb

Brock,

Thanks for your reply, it sounds like a good idea. Will AJAX allow me to
initiate the long running task and give the user the ability to refresh the
page to get the status? I have read an article or two on AJAX but haven't
used it yet.

Thanks,

Mark



Brock Allen said:
You should consider redesigning this long running work so the browser
isn't waiting for it to complete. So make a button that initiates the
work, then give the user the ability to refresh the page to see the
pending work. To initiate the work you'll have to kick off another thread
somehow (so use ThreadPool.QueueUserWorkItem, or manually create another
thread; there are pros and cons to each of these approaches). To monitor
the pending work you'll need some other status table in the DB where your
user can see if the work is complete. Once it is, update that table.
Anyway, just an idea on how to rework this long running task....

-Brock
DevelopMentor
http://staff.develop.com/ballen


Our asp.net web app uses a .NET component (DLL) in the bin directory
to call several stored procedures back to back to perform updates.
They don't return any data. Sometimes the total execution time can
take 2-3 minutes, but even though I have set the executionTimeout in
web.config to a high number of seconds (2400), the request will still
time out after 90 seconds. The user sees a Request timed out error.
The app logs a ThreadAborted exception, [Thread was being aborted].

The web app and the component are compiled in Release mode. I read
that you only have to set one property; executionTimeout or the
ScriptTimeout property in IIS, but not both. Is that true or false?

Thanks for your help,

Mark
 
B

Brock Allen

Well, you need to access the server somehow to initiate the long running
task. It doesn't matter if that's an AJAX call or a normal page post. Same
thing for refreshing thew page to check the status; somehow you need to contact
the server. Both approaches will work.

-Brock
DevelopMentor
http://staff.develop.com/ballen


Brock,

Thanks for your reply, it sounds like a good idea. Will AJAX allow me
to initiate the long running task and give the user the ability to
refresh the page to get the status? I have read an article or two on
AJAX but haven't used it yet.

Thanks,

Mark

You should consider redesigning this long running work so the browser
isn't waiting for it to complete. So make a button that initiates the
work, then give the user the ability to refresh the page to see the
pending work. To initiate the work you'll have to kick off another
thread somehow (so use ThreadPool.QueueUserWorkItem, or manually
create another thread; there are pros and cons to each of these
approaches). To monitor the pending work you'll need some other
status table in the DB where your user can see if the work is
complete. Once it is, update that table. Anyway, just an idea on how
to rework this long running task....

-Brock
DevelopMentor
http://staff.develop.com/ballen
Our asp.net web app uses a .NET component (DLL) in the bin directory
to call several stored procedures back to back to perform updates.
They don't return any data. Sometimes the total execution time can
take 2-3 minutes, but even though I have set the executionTimeout in
web.config to a high number of seconds (2400), the request will
still time out after 90 seconds. The user sees a Request timed out
error. The app logs a ThreadAborted exception, [Thread was being
aborted].

The web app and the component are compiled in Release mode. I read
that you only have to set one property; executionTimeout or the
ScriptTimeout property in IIS, but not both. Is that true or false?

Thanks for your help,

Mark
 
G

greenb

Thanks again, but the immediate issue is this is a production application
that needs to be fixed ASAP. For the short term, shouldn't I be able to use
the executionTimeout attribute of the <httpRunTime> element to control these
timeouts? That's the way the documentation reads anyway.
Thanks,

Mark


Brock Allen said:
Well, you need to access the server somehow to initiate the long running
task. It doesn't matter if that's an AJAX call or a normal page post. Same
thing for refreshing thew page to check the status; somehow you need to contact
the server. Both approaches will work.

-Brock
DevelopMentor
http://staff.develop.com/ballen


Brock,

Thanks for your reply, it sounds like a good idea. Will AJAX allow me
to initiate the long running task and give the user the ability to
refresh the page to get the status? I have read an article or two on
AJAX but haven't used it yet.

Thanks,

Mark

You should consider redesigning this long running work so the browser
isn't waiting for it to complete. So make a button that initiates the
work, then give the user the ability to refresh the page to see the
pending work. To initiate the work you'll have to kick off another
thread somehow (so use ThreadPool.QueueUserWorkItem, or manually
create another thread; there are pros and cons to each of these
approaches). To monitor the pending work you'll need some other
status table in the DB where your user can see if the work is
complete. Once it is, update that table. Anyway, just an idea on how
to rework this long running task....

-Brock
DevelopMentor
http://staff.develop.com/ballen
Our asp.net web app uses a .NET component (DLL) in the bin directory
to call several stored procedures back to back to perform updates.
They don't return any data. Sometimes the total execution time can
take 2-3 minutes, but even though I have set the executionTimeout in
web.config to a high number of seconds (2400), the request will
still time out after 90 seconds. The user sees a Request timed out
error. The app logs a ThreadAborted exception, [Thread was being
aborted].

The web app and the component are compiled in Release mode. I read
that you only have to set one property; executionTimeout or the
ScriptTimeout property in IIS, but not both. Is that true or false?

Thanks for your help,

Mark
 
B

Brock Allen

The browser really is the ultimate problem here, since it can choose to abandon
the request. You don't have a lot of control over that...

Re: fixing this ASAP: It really isn't a lot of work. I could imagine it getting
done in one or two days.

-Brock
DevelopMentor
http://staff.develop.com/ballen


Thanks again, but the immediate issue is this is a production
application
that needs to be fixed ASAP. For the short term, shouldn't I be able
to use
the executionTimeout attribute of the <httpRunTime> element to control
these
timeouts? That's the way the documentation reads anyway.
Thanks,
Mark

Well, you need to access the server somehow to initiate the long
running task. It doesn't matter if that's an AJAX call or a normal
page post. Same thing for refreshing thew page to check the status;
somehow you need to
contact

the server. Both approaches will work.

-Brock
DevelopMentor
http://staff.develop.com/ballen
Brock,

Thanks for your reply, it sounds like a good idea. Will AJAX allow
me to initiate the long running task and give the user the ability
to refresh the page to get the status? I have read an article or two
on AJAX but haven't used it yet.

Thanks,

Mark


You should consider redesigning this long running work so the
browser isn't waiting for it to complete. So make a button that
initiates the work, then give the user the ability to refresh the
page to see the pending work. To initiate the work you'll have to
kick off another thread somehow (so use
ThreadPool.QueueUserWorkItem, or manually create another thread;
there are pros and cons to each of these approaches). To monitor
the pending work you'll need some other status table in the DB
where your user can see if the work is complete. Once it is, update
that table. Anyway, just an idea on how to rework this long running
task....

-Brock
DevelopMentor
http://staff.develop.com/ballen
Our asp.net web app uses a .NET component (DLL) in the bin
directory to call several stored procedures back to back to
perform updates. They don't return any data. Sometimes the total
execution time can take 2-3 minutes, but even though I have set
the executionTimeout in web.config to a high number of seconds
(2400), the request will still time out after 90 seconds. The
user sees a Request timed out error. The app logs a ThreadAborted
exception, [Thread was being aborted].

The web app and the component are compiled in Release mode. I
read that you only have to set one property; executionTimeout or
the ScriptTimeout property in IIS, but not both. Is that true or
false?

Thanks for your help,

Mark
 
M

Mark G

I guess I better get to work :), I'll let you know how it turns out.

Thanks for the info,

Mark


Brock Allen said:
The browser really is the ultimate problem here, since it can choose to abandon
the request. You don't have a lot of control over that...

Re: fixing this ASAP: It really isn't a lot of work. I could imagine it getting
done in one or two days.

-Brock
DevelopMentor
http://staff.develop.com/ballen


Thanks again, but the immediate issue is this is a production
application
that needs to be fixed ASAP. For the short term, shouldn't I be able
to use
the executionTimeout attribute of the <httpRunTime> element to control
these
timeouts? That's the way the documentation reads anyway.
Thanks,
Mark

Well, you need to access the server somehow to initiate the long
running task. It doesn't matter if that's an AJAX call or a normal
page post. Same thing for refreshing thew page to check the status;
somehow you need to
contact

the server. Both approaches will work.

-Brock
DevelopMentor
http://staff.develop.com/ballen
Brock,

Thanks for your reply, it sounds like a good idea. Will AJAX allow
me to initiate the long running task and give the user the ability
to refresh the page to get the status? I have read an article or two
on AJAX but haven't used it yet.

Thanks,

Mark


You should consider redesigning this long running work so the
browser isn't waiting for it to complete. So make a button that
initiates the work, then give the user the ability to refresh the
page to see the pending work. To initiate the work you'll have to
kick off another thread somehow (so use
ThreadPool.QueueUserWorkItem, or manually create another thread;
there are pros and cons to each of these approaches). To monitor
the pending work you'll need some other status table in the DB
where your user can see if the work is complete. Once it is, update
that table. Anyway, just an idea on how to rework this long running
task....

-Brock
DevelopMentor
http://staff.develop.com/ballen
Our asp.net web app uses a .NET component (DLL) in the bin
directory to call several stored procedures back to back to
perform updates. They don't return any data. Sometimes the total
execution time can take 2-3 minutes, but even though I have set
the executionTimeout in web.config to a high number of seconds
(2400), the request will still time out after 90 seconds. The
user sees a Request timed out error. The app logs a ThreadAborted
exception, [Thread was being aborted].

The web app and the component are compiled in Release mode. I
read that you only have to set one property; executionTimeout or
the ScriptTimeout property in IIS, but not both. Is that true or
false?

Thanks for your help,

Mark
 
S

Steven Cheng[MSFT]

Thanks for Brock's good suggesitons.

Hi Mark,

In addition to Brock's suggestion on make your serverside processing
asynchronously so as to release the woker thread, regarding on the problem
itself, I think you can still check the following things:

1. You can use the Server.ScriptTime property to also adjust the
ScriptTimeout value in addition to the httpRuntime/@executeTimeout setting,
just to make sure all the worker thread level timeout has been adjusted
correctly.

2. Please check the web.config file 's system.web/compilation/@debug
attribute to see whether it is set to "true" or "false", if false, please
change it to "true" since the "executeTimeout won't work correctly under
debug compilation.

In addition, you can also check whether you've apply any Timeout setting at
the database processing layer, such as the SqlCommand's IdleTimeout .

Hope also helps. Thanks,

Steven Cheng
Microsoft Online Support

Get Secure! www.microsoft.com/security
(This posting is provided "AS IS", with no warranties, and confers no
rights.)
--------------------
| From: "Mark G" <[email protected]>
| References: <#oE4#[email protected]>
<[email protected]>
| Subject: Re: Execution Timeout Problem
| Date: Sun, 21 Aug 2005 17:51:25 -0500
| Lines: 100
| X-Priority: 3
| X-MSMail-Priority: Normal
| X-Newsreader: Microsoft Outlook Express 6.00.2800.1506
| X-MimeOLE: Produced By Microsoft MimeOLE V6.00.2800.1506
| Message-ID: <O#[email protected]>
| Newsgroups: microsoft.public.dotnet.framework.aspnet
| NNTP-Posting-Host: alxapex01.southernco.com 146.126.51.51
| Path: TK2MSFTNGXA01.phx.gbl!TK2MSFTNGP08.phx.gbl!TK2MSFTNGP09.phx.gbl
| Xref: TK2MSFTNGXA01.phx.gbl
microsoft.public.dotnet.framework.aspnet:119366
| X-Tomcat-NG: microsoft.public.dotnet.framework.aspnet
|
| I guess I better get to work :), I'll let you know how it turns out.
|
| Thanks for the info,
|
| Mark
|
|
| | > The browser really is the ultimate problem here, since it can choose to
| abandon
| > the request. You don't have a lot of control over that...
| >
| > Re: fixing this ASAP: It really isn't a lot of work. I could imagine it
| getting
| > done in one or two days.
| >
| > -Brock
| > DevelopMentor
| > http://staff.develop.com/ballen
| >
| >
| >
| > > Thanks again, but the immediate issue is this is a production
| > > application
| > > that needs to be fixed ASAP. For the short term, shouldn't I be able
| > > to use
| > > the executionTimeout attribute of the <httpRunTime> element to control
| > > these
| > > timeouts? That's the way the documentation reads anyway.
| > > Thanks,
| > > Mark
| > >
| > > | > >
| > >> Well, you need to access the server somehow to initiate the long
| > >> running task. It doesn't matter if that's an AJAX call or a normal
| > >> page post. Same thing for refreshing thew page to check the status;
| > >> somehow you need to
| > >>
| > > contact
| > >
| > >> the server. Both approaches will work.
| > >>
| > >> -Brock
| > >> DevelopMentor
| > >> http://staff.develop.com/ballen
| > >>> Brock,
| > >>>
| > >>> Thanks for your reply, it sounds like a good idea. Will AJAX allow
| > >>> me to initiate the long running task and give the user the ability
| > >>> to refresh the page to get the status? I have read an article or two
| > >>> on AJAX but haven't used it yet.
| > >>>
| > >>> Thanks,
| > >>>
| > >>> Mark
| > >>>
| > >>> | > >>>
| > >>>> You should consider redesigning this long running work so the
| > >>>> browser isn't waiting for it to complete. So make a button that
| > >>>> initiates the work, then give the user the ability to refresh the
| > >>>> page to see the pending work. To initiate the work you'll have to
| > >>>> kick off another thread somehow (so use
| > >>>> ThreadPool.QueueUserWorkItem, or manually create another thread;
| > >>>> there are pros and cons to each of these approaches). To monitor
| > >>>> the pending work you'll need some other status table in the DB
| > >>>> where your user can see if the work is complete. Once it is, update
| > >>>> that table. Anyway, just an idea on how to rework this long running
| > >>>> task....
| > >>>>
| > >>>> -Brock
| > >>>> DevelopMentor
| > >>>> http://staff.develop.com/ballen
| > >>>>> Our asp.net web app uses a .NET component (DLL) in the bin
| > >>>>> directory to call several stored procedures back to back to
| > >>>>> perform updates. They don't return any data. Sometimes the total
| > >>>>> execution time can take 2-3 minutes, but even though I have set
| > >>>>> the executionTimeout in web.config to a high number of seconds
| > >>>>> (2400), the request will still time out after 90 seconds. The
| > >>>>> user sees a Request timed out error. The app logs a ThreadAborted
| > >>>>> exception, [Thread was being aborted].
| > >>>>>
| > >>>>> The web app and the component are compiled in Release mode. I
| > >>>>> read that you only have to set one property; executionTimeout or
| > >>>>> the ScriptTimeout property in IIS, but not both. Is that true or
| > >>>>> false?
| > >>>>>
| > >>>>> Thanks for your help,
| > >>>>>
| > >>>>> Mark
| > >>>>>
| >
| >
| >
|
|
|
 
M

Mark G

Steven,

Thanks for your reply.

I have a question about your second suggestion below, concerning the debug
attribute in web.config. You suggested setting it to "true". If it's set
to "true" (debug-true), isn't that setting the compilation to DEBUG? You
said "executeTimeout won't work correctly under debug compilation".

Thanks,

Mark


Steven Cheng said:
Thanks for Brock's good suggesitons.

Hi Mark,

In addition to Brock's suggestion on make your serverside processing
asynchronously so as to release the woker thread, regarding on the problem
itself, I think you can still check the following things:

1. You can use the Server.ScriptTime property to also adjust the
ScriptTimeout value in addition to the httpRuntime/@executeTimeout setting,
just to make sure all the worker thread level timeout has been adjusted
correctly.

2. Please check the web.config file 's system.web/compilation/@debug
attribute to see whether it is set to "true" or "false", if false, please
change it to "true" since the "executeTimeout won't work correctly under
debug compilation.

In addition, you can also check whether you've apply any Timeout setting at
the database processing layer, such as the SqlCommand's IdleTimeout .

Hope also helps. Thanks,

Steven Cheng
Microsoft Online Support

Get Secure! www.microsoft.com/security
(This posting is provided "AS IS", with no warranties, and confers no
rights.)
--------------------
| From: "Mark G" <[email protected]>
| References: <#oE4#[email protected]>
<[email protected]>
| Subject: Re: Execution Timeout Problem
| Date: Sun, 21 Aug 2005 17:51:25 -0500
| Lines: 100
| X-Priority: 3
| X-MSMail-Priority: Normal
| X-Newsreader: Microsoft Outlook Express 6.00.2800.1506
| X-MimeOLE: Produced By Microsoft MimeOLE V6.00.2800.1506
| Message-ID: <O#[email protected]>
| Newsgroups: microsoft.public.dotnet.framework.aspnet
| NNTP-Posting-Host: alxapex01.southernco.com 146.126.51.51
| Path: TK2MSFTNGXA01.phx.gbl!TK2MSFTNGP08.phx.gbl!TK2MSFTNGP09.phx.gbl
| Xref: TK2MSFTNGXA01.phx.gbl
microsoft.public.dotnet.framework.aspnet:119366
| X-Tomcat-NG: microsoft.public.dotnet.framework.aspnet
|
| I guess I better get to work :), I'll let you know how it turns out.
|
| Thanks for the info,
|
| Mark
|
|
| | > The browser really is the ultimate problem here, since it can choose to
| abandon
| > the request. You don't have a lot of control over that...
| >
| > Re: fixing this ASAP: It really isn't a lot of work. I could imagine it
| getting
| > done in one or two days.
| >
| > -Brock
| > DevelopMentor
| > http://staff.develop.com/ballen
| >
| >
| >
| > > Thanks again, but the immediate issue is this is a production
| > > application
| > > that needs to be fixed ASAP. For the short term, shouldn't I be able
| > > to use
| > > the executionTimeout attribute of the <httpRunTime> element to control
| > > these
| > > timeouts? That's the way the documentation reads anyway.
| > > Thanks,
| > > Mark
| > >
| > > | > >
| > >> Well, you need to access the server somehow to initiate the long
| > >> running task. It doesn't matter if that's an AJAX call or a normal
| > >> page post. Same thing for refreshing thew page to check the status;
| > >> somehow you need to
| > >>
| > > contact
| > >
| > >> the server. Both approaches will work.
| > >>
| > >> -Brock
| > >> DevelopMentor
| > >> http://staff.develop.com/ballen
| > >>> Brock,
| > >>>
| > >>> Thanks for your reply, it sounds like a good idea. Will AJAX allow
| > >>> me to initiate the long running task and give the user the ability
| > >>> to refresh the page to get the status? I have read an article or two
| > >>> on AJAX but haven't used it yet.
| > >>>
| > >>> Thanks,
| > >>>
| > >>> Mark
| > >>>
| > >>> | > >>>
| > >>>> You should consider redesigning this long running work so the
| > >>>> browser isn't waiting for it to complete. So make a button that
| > >>>> initiates the work, then give the user the ability to refresh the
| > >>>> page to see the pending work. To initiate the work you'll have to
| > >>>> kick off another thread somehow (so use
| > >>>> ThreadPool.QueueUserWorkItem, or manually create another thread;
| > >>>> there are pros and cons to each of these approaches). To monitor
| > >>>> the pending work you'll need some other status table in the DB
| > >>>> where your user can see if the work is complete. Once it is, update
| > >>>> that table. Anyway, just an idea on how to rework this long running
| > >>>> task....
| > >>>>
| > >>>> -Brock
| > >>>> DevelopMentor
| > >>>> http://staff.develop.com/ballen
| > >>>>> Our asp.net web app uses a .NET component (DLL) in the bin
| > >>>>> directory to call several stored procedures back to back to
| > >>>>> perform updates. They don't return any data. Sometimes the total
| > >>>>> execution time can take 2-3 minutes, but even though I have set
| > >>>>> the executionTimeout in web.config to a high number of seconds
| > >>>>> (2400), the request will still time out after 90 seconds. The
| > >>>>> user sees a Request timed out error. The app logs a ThreadAborted
| > >>>>> exception, [Thread was being aborted].
| > >>>>>
| > >>>>> The web app and the component are compiled in Release mode. I
| > >>>>> read that you only have to set one property; executionTimeout or
| > >>>>> the ScriptTimeout property in IIS, but not both. Is that true or
| > >>>>> false?
| > >>>>>
| > >>>>> Thanks for your help,
| > >>>>>
| > >>>>> Mark
| > >>>>>
| >
| >
| >
|
|
|
 
S

Steven Cheng[MSFT]

Thanks for your response Mark,

Oops... I'm afraid I've made a type mistake, what I want to say is we
should set debug to false so as to make the executeTimeout work currently.
Sorry for the inconvenience.

Steven Cheng
Microsoft Online Support

Get Secure! www.microsoft.com/security
(This posting is provided "AS IS", with no warranties, and confers no
rights.)
--------------------
| From: "Mark G" <[email protected]>
| References: <#oE4#[email protected]>
<[email protected]>
<O#[email protected]>
<[email protected]>
| Subject: Re: Execution Timeout Problem
| Date: Mon, 22 Aug 2005 08:56:37 -0500
| Lines: 180
| X-Priority: 3
| X-MSMail-Priority: Normal
| X-Newsreader: Microsoft Outlook Express 6.00.2800.1506
| X-MimeOLE: Produced By Microsoft MimeOLE V6.00.2800.1506
| Message-ID: <#[email protected]>
| Newsgroups: microsoft.public.dotnet.framework.aspnet
| NNTP-Posting-Host: sfxapgenv.southerngeneration.com 12.38.227.5
| Path: TK2MSFTNGXA01.phx.gbl!TK2MSFTNGP08.phx.gbl!TK2MSFTNGP10.phx.gbl
| Xref: TK2MSFTNGXA01.phx.gbl
microsoft.public.dotnet.framework.aspnet:119458
| X-Tomcat-NG: microsoft.public.dotnet.framework.aspnet
|
| Steven,
|
| Thanks for your reply.
|
| I have a question about your second suggestion below, concerning the debug
| attribute in web.config. You suggested setting it to "true". If it's set
| to "true" (debug-true), isn't that setting the compilation to DEBUG? You
| said "executeTimeout won't work correctly under debug compilation".
|
| Thanks,
|
| Mark
|
|
| | > Thanks for Brock's good suggesitons.
| >
| > Hi Mark,
| >
| > In addition to Brock's suggestion on make your serverside processing
| > asynchronously so as to release the woker thread, regarding on the
problem
| > itself, I think you can still check the following things:
| >
| > 1. You can use the Server.ScriptTime property to also adjust the
| > ScriptTimeout value in addition to the httpRuntime/@executeTimeout
| setting,
| > just to make sure all the worker thread level timeout has been adjusted
| > correctly.
| >
| > 2. Please check the web.config file 's system.web/compilation/@debug
| > attribute to see whether it is set to "true" or "false", if false,
please
| > change it to "true" since the "executeTimeout won't work correctly
under
| > debug compilation.
| >
| > In addition, you can also check whether you've apply any Timeout setting
| at
| > the database processing layer, such as the SqlCommand's IdleTimeout .
| >
| > Hope also helps. Thanks,
| >
| > Steven Cheng
| > Microsoft Online Support
| >
| > Get Secure! www.microsoft.com/security
| > (This posting is provided "AS IS", with no warranties, and confers no
| > rights.)
| > --------------------
| > | From: "Mark G" <[email protected]>
| > | References: <#oE4#[email protected]>
| > <[email protected]>
| > | Subject: Re: Execution Timeout Problem
| > | Date: Sun, 21 Aug 2005 17:51:25 -0500
| > | Lines: 100
| > | X-Priority: 3
| > | X-MSMail-Priority: Normal
| > | X-Newsreader: Microsoft Outlook Express 6.00.2800.1506
| > | X-MimeOLE: Produced By Microsoft MimeOLE V6.00.2800.1506
| > | Message-ID: <O#[email protected]>
| > | Newsgroups: microsoft.public.dotnet.framework.aspnet
| > | NNTP-Posting-Host: alxapex01.southernco.com 146.126.51.51
| > | Path: TK2MSFTNGXA01.phx.gbl!TK2MSFTNGP08.phx.gbl!TK2MSFTNGP09.phx.gbl
| > | Xref: TK2MSFTNGXA01.phx.gbl
| > microsoft.public.dotnet.framework.aspnet:119366
| > | X-Tomcat-NG: microsoft.public.dotnet.framework.aspnet
| > |
| > | I guess I better get to work :), I'll let you know how it turns out.
| > |
| > | Thanks for the info,
| > |
| > | Mark
| > |
| > |
| > | | > | > The browser really is the ultimate problem here, since it can choose
| to
| > | abandon
| > | > the request. You don't have a lot of control over that...
| > | >
| > | > Re: fixing this ASAP: It really isn't a lot of work. I could imagine
| it
| > | getting
| > | > done in one or two days.
| > | >
| > | > -Brock
| > | > DevelopMentor
| > | > http://staff.develop.com/ballen
| > | >
| > | >
| > | >
| > | > > Thanks again, but the immediate issue is this is a production
| > | > > application
| > | > > that needs to be fixed ASAP. For the short term, shouldn't I be
| able
| > | > > to use
| > | > > the executionTimeout attribute of the <httpRunTime> element to
| control
| > | > > these
| > | > > timeouts? That's the way the documentation reads anyway.
| > | > > Thanks,
| > | > > Mark
| > | > >
| > | > > | > | > >
| > | > >> Well, you need to access the server somehow to initiate the long
| > | > >> running task. It doesn't matter if that's an AJAX call or a
normal
| > | > >> page post. Same thing for refreshing thew page to check the
status;
| > | > >> somehow you need to
| > | > >>
| > | > > contact
| > | > >
| > | > >> the server. Both approaches will work.
| > | > >>
| > | > >> -Brock
| > | > >> DevelopMentor
| > | > >> http://staff.develop.com/ballen
| > | > >>> Brock,
| > | > >>>
| > | > >>> Thanks for your reply, it sounds like a good idea. Will AJAX
| allow
| > | > >>> me to initiate the long running task and give the user the
ability
| > | > >>> to refresh the page to get the status? I have read an article or
| two
| > | > >>> on AJAX but haven't used it yet.
| > | > >>>
| > | > >>> Thanks,
| > | > >>>
| > | > >>> Mark
| > | > >>>
| > | > >>> | > | > >>>
| > | > >>>> You should consider redesigning this long running work so the
| > | > >>>> browser isn't waiting for it to complete. So make a button that
| > | > >>>> initiates the work, then give the user the ability to refresh
the
| > | > >>>> page to see the pending work. To initiate the work you'll have
to
| > | > >>>> kick off another thread somehow (so use
| > | > >>>> ThreadPool.QueueUserWorkItem, or manually create another
thread;
| > | > >>>> there are pros and cons to each of these approaches). To
monitor
| > | > >>>> the pending work you'll need some other status table in the DB
| > | > >>>> where your user can see if the work is complete. Once it is,
| update
| > | > >>>> that table. Anyway, just an idea on how to rework this long
| running
| > | > >>>> task....
| > | > >>>>
| > | > >>>> -Brock
| > | > >>>> DevelopMentor
| > | > >>>> http://staff.develop.com/ballen
| > | > >>>>> Our asp.net web app uses a .NET component (DLL) in the bin
| > | > >>>>> directory to call several stored procedures back to back to
| > | > >>>>> perform updates. They don't return any data. Sometimes the
total
| > | > >>>>> execution time can take 2-3 minutes, but even though I have
set
| > | > >>>>> the executionTimeout in web.config to a high number of seconds
| > | > >>>>> (2400), the request will still time out after 90 seconds. The
| > | > >>>>> user sees a Request timed out error. The app logs a
| ThreadAborted
| > | > >>>>> exception, [Thread was being aborted].
| > | > >>>>>
| > | > >>>>> The web app and the component are compiled in Release mode. I
| > | > >>>>> read that you only have to set one property; executionTimeout
or
| > | > >>>>> the ScriptTimeout property in IIS, but not both. Is that true
| or
| > | > >>>>> false?
| > | > >>>>>
| > | > >>>>> Thanks for your help,
| > | > >>>>>
| > | > >>>>> Mark
| > | > >>>>>
| > | >
| > | >
| > | >
| > |
| > |
| > |
| >
|
|
|
 

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

Top