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
-~----------~----~----~----~------~----~------~--~---

Reply via email to