Actually you are right Michael. and i know it's bad design.
For long-running process , with ajax or no ajax, if the web method
takes longer than script timeout, we are going to have problems.
I can change the timeout period to lets say 5 min. but this is not the
solution, what if the process longer than the script timeout again.
i'm still looking for a best solution.
1- Using Asynchronous delegation
2- Message queue as you offer
3- increasing script timeout period
4- One Way Web Services, if you dont return response to the client.
it's like fire & forget. ( method 1 )
And one interesting solution (actualy not a solution) i found is if you
set the compilation debug mode set to true , request isnt timeout.
But i dont know how much effect performance of the application or
server.
Michael Schwarz wrote:
> First of all never use requests that may run by default more than some
> seconds, you should replace this by a backend process, something like
> a message queue which you can ask for the status.
>
> For the request timeout, there is an option somewhere where you can
> change the default duration, search for "request timeout asp.net"
> maybe.
>
> Regards,
> Michael
>
>
>
> On 5/17/06, ajaxer <[EMAIL PROTECTED]> wrote:
> >
> > I forgot to mention i'm using .net 2.0 and win xp sp2.
> >
> > Albert : I've already set the requirePermossion to false.
> > Nguyen : My server is still running. During the process and after the
> > process.
> >
> > Today i realize that one of the job finished successfully which is
> > last than a minute. and it never gives error. (Request Timeout error) .
> >
> > but if i start process that long last that minute ( in my example
> > about 4 min.). it gives error. Request Timeout.
> >
> > During the long process, i'm polling the server to get the process
> > status on every two second . (long process is insert some information
> > to the DB table).
> >
> > Does it make the difference???
> >
> > Javascript Code :
> >
> > function PrepareData()
> > {
> > $('logDiv').innerText = '';
> > sb = new StatusBox();
> > sb.hide();
> > var i = $('ctl00_cph_ddlInvoicePeriod');
> > var b = $('ctl00_cph_ddlBillingPeriod');
> > var chk = $('ctl00_cph_cbBackup');
> > oreqId = Math.round(1000000*Math.random());
> > oInvoicePeriod = i.value;
> > oBillingPeriod = b.value;
> > Pages_TestData_TestDataReport.PrepareData(oreqId, oInvoicePeriod,
> > oBillingPeriod,chk.checked ,PrepareData_cb, '',onLoadingAnimation);
> > fnStartInterval();
> > }
> > function PrepareData_cb(e)
> > {
> > var sb = new StatusBox();
> > if(e.error != null)
> > {
> > sb.setText('Error : ' + e.error.Message );
> > e = null;
> > fnStopInterval();
> > return;
> > }
> > if(e.value == '')
> > sb.setText('Unexpected error occurred. Please contact
> > with administrator.');
> > else
> > sb.setText(e.value);
> > e = null;
> > fnStopInterval();
> > //After stopping interval, execute the polllog last time to get
> > the all the information.
> > Pages_TestData_TestDataReport.PollLog(oreqId, oInvoicePeriod,
> > oBillingPeriod, PollLog_cb);
> > }
> >
> > function PollLog_cb(e)
> > {
> > if(e.error != null)
> > $('logDiv').innerHTML = 'Error : ' + e.error.Message +
> > '<br />';
> > else
> > $('logDiv').innerHTML = e.value + '<br />';
> > e = null;
> > }
> >
> > function fnStartInterval()
> > {
> > if(oInterval == '' )
> > {
> > if (!oreqId ) oreqId = 0;
> > oInterval =
> > window.setInterval('Pages_TestData_TestDataReport.PollLog(oreqId,
> > oInvoicePeriod, oBillingPeriod, PollLog_cb);
> > ',1000);
> > }
> > else
> > {
> > fnStopInterval();
> > }
> > }
> > function fnStopInterval()
> > {
> > if(oInterval != '')
> > {
> > window.clearInterval(oInterval);
> > oInterval = '';
> > }
> > }
> >
> >
> >
> >
> > Albert Weinert wrote:
> > > Nguyen, Hung Dinh schrieb:
> > >
> > > > The server is not started or died during call send request.
> > >
> > > ASP.NET 2.0? requirePermission="false" set in the <configSection/>
> > > within you web.config?
> > >
> > > --
> > > Freundliche Grüße
> > >
> > > Albert Weinert
> > >
> > > http://der-albert.com
> >
> >
> > >
> >
>
>
> --
> Best regards | Schöne Grüße
> Michael
>
> Microsoft MVP - Most Valuable Professional
> Microsoft MCAD - Certified Application Developer
>
> http://weblogs.asp.net/mschwarz/
> http://www.schwarz-interactive.de/
> mailto:[EMAIL PROTECTED]
--~--~---------~--~----~------------~-------~--~----~
You received this message because you are subscribed to the Google Groups
"Ajax.NET Professional" group.
To post to this group, send email to [email protected]
To unsubscribe from this group, send email to [EMAIL PROTECTED]
For more options, visit this group at http://groups.google.com/group/ajaxpro
The latest downloads of Ajax.NET Professional can be found at
http://www.ajaxpro.info
-~----------~----~----~----~------~----~------~--~---