asynchronous call back and session variables.....

O

Ollie

I have an asp.net webservice that is called from an asp.net website, the
processes on the web service may take sometime so I call the webservice
using the asynchronous method calls, i.e. BeginXXXX(), EndXXXX() etc...

I pass a call back into the BeginXXX method so that when the operation has
completed the call back method is called.....

So in the web page it looks something like this:-

private void BeginUpdateData()
{
AsyncCallback AsyncCallBack = new AsyncCallback(UpdateCallback);
System.IAsyncResult asyncResult =
Analyser.BeginUpdateXXXX(serializedData, AsyncCallBack, null);

Session["Processing"] = true;
Session["ProcessingMessage"] = "Updating Entry....";
Session["ProcessingRefreshTime"] = 2;
Session["ProcessingRedirectPath"] = Request.Path;
Response.Redirect(Request.ApplicationPath +
"/Analysis/Processing.aspx", true);
}

public void UpdateCallback(IAsyncResult ar)
{
EndUpdateData(ar);
}

private void EndUpdateData(System.IAsyncResult asyncResult)
{
string data = null;
data = Analyser.EndUpdateXXXX(asyncResult);

Session["Processing"] = null;
}

And the processing.aspx page_load is:

private void Page_Load(object sender, System.EventArgs e)
{
if(Session["Processing"] == null)
{
Session["ProcessingMessage"] = null;
Session["ProcessingRefreshTime"] = null;

string redirectPath =
(string)Session["ProcessingRedirectPath"];
Session["ProcessingRedirectPath"] = null;

Response.Redirect(redirectPath);
}

string message = (string)Session["ProcessingMessage"];
int refreshTime = (int)Session["ProcessingRefreshTime"];

Response.AddHeader("Refresh", refreshTime.ToString());
lbProcessing.Text = message;
}


The problem is that when the asynchronous call back is called it clears the
session variable "Processing", BUT next time the processing.aspx page
refreshes the session variable still exists with the value 'true' to
therefore it does not redirect. I am using out-of-proc session management
using StateServer

Have I made a simple mistake?

Can anyoen help ?

Cheers in Advance

Ollie
 

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