因為項目需要,在上傳文件的時候,臨時使用了Jeffrey Zhao寫的AJaxFileUploadHelper控件。
但是在使用 的過程中遇到了這樣的問題:
在頁面中使用了 IETreeVIEw 控件發生這個錯誤的,但是在我建立的測試項目中發生的是500錯
Sys.WebForms.PageRequestManagerServerErrorException: An unknown error occurred while processing the request on the server. The status code returned from the server was: 500
找了半天也不知道是什麼原因。給其發了2個郵件,也不見絲毫回應.....
只好查源代碼:發現在其寫的控件中有一個Page_Error函數被觸發。
private void EnsureIsInAJaxFileUploading()
...{
this.isInAjaxUploading = AJaxFileUploadUtility.IsInIFrameAsyncPostBack(this.Page.Request.Params);
//this.Page.Error += new EventHandler(Page_Error);
if (this.isInAJaxUploading)
...{
isInAsyncPostBackFIEldInfo.SetValue(
ScriptManager.GetCurrent(this.Page),
true);
this.Page.Error += new EventHandler(Page_Error);
}
}
private void Page_Error(object sender, EventArgs e)
...{
AJaxFileUploadUtility.WriteScriptBlock(this.Page.Response, true);
onPageErrorMethodInfo.Invoke(this.PageRequestManager, new object[] ......{ sender, e });
AJaxFileUploadUtility.WriteScriptBlock(this.Page.Response, false);
}
可是還是解決不了問題。
於是在原來的頁面下.ASPx的cs文件中增加了一個函數
protected void Page_Error(object sender, EventArgs e)
...{
Exception ex = Server.GetLastError();
Server.ClearError();
}
截獲了Exception。發現因為Exception的存在影響了老趙控件的作用。
將整個Exception解除之後,UploadHelper控件正常工作