0
votes

We have an updatepanel in our site and there are a number of linkbuttons in it.

Please note that the site works fine across all browsers without proxy

the proxy changes the url from for instance www.mysite.net to 0-www.mysite.net.edu.net it also works fine in all browsers but IE

the issue is that under proxy and in IE8, it gives an error when clicking one of the linkbuttons, the error message is

"Webpage error details

User Agent: Mozilla/4.0 (compatible; MSIE 8.0; Windows NT 6.1; Trident/4.0; SLCC2; .NET CLR 2.0.50727; .NET CLR 3.5.30729; .NET CLR 3.0.30729; Media Center PC 6.0; Tablet PC 2.0; InfoPath.1; .NET4.0C; .NET4.0E)

Timestamp: Sun, 13 Mar 2011 20:38:58 UTC

Message: Sys.WebForms.PageRequestManagerParserErrorException: The message received from the server could not be parsed. Common causes for this error are when the response is modified by calls to Response.Write(), response filters, HttpModules, or server trace is enabled.

Details: Error parsing near '

I have no idea what goes wrong here, it seems that IE can't parse the response ?

I open IE developer developer tool and it shows where the error occurs

Sys.Net.XMLHttpExecutor = function Sys$Net$XMLHttpExecutor() {
/// <summary locid="M:J#Sys.Net.XMLHttpExecutor.#ctor" />
if (arguments.length !== 0) throw Error.parameterCount();
Sys.Net.XMLHttpExecutor.initializeBase(this);
var _this = this;
this._xmlHttpRequest = null;
this._webRequest = null;
this._responseAvailable = false;
this._timedOut = false;
this._timer = null;
this._aborted = false;
this._started = false;
this._onReadyStateChange = (function () {

    if (_this._xmlHttpRequest.readyState === 4 ) {
        try {
            if (typeof(_this._xmlHttpRequest.status) === "undefined") {
                return;
            }
        }
        catch(ex) {
            return;
        }

        _this._clearTimer();
        _this._responseAvailable = true;
        try {
            _this._webRequest.completed(Sys.EventArgs.Empty);
        }
        finally {//<-----------------HERE IS WHERE THE ERROR OCCURS               
            if (_this._xmlHttpRequest != null) {
                _this._xmlHttpRequest.onreadystatechange = Function.emptyMethod;
                _this._xmlHttpRequest = null;
            }
        }
    }
});

PLEASE HELP! THANK A MILLION!

1

1 Answers

0
votes

Its because the UpdatePanel expects its Response formatted a specific way("|" delimited). If anything tampers with the format of the data in transit, it cannot parse the response.

Sys.WebForms.PageRequestManagerParserErrorException - what it is and how to avoid it

Asynchronous postbacks go through the same life cycles events as regular pages (this is a question I get asked often). Only at the render phase do things get different. We capture the rendering of only the UpdatePanels that we care about and send it down to the client using a special format. In addition, we send out some other pieces of information, such as the page title, hidden form values, the form action URL, and lists of scripts.