簡體   English   中英

Sys.WebForms.PageRequestManagerServerErrorException:在服務器上處理請求時發生未知錯誤。”

[英]Sys.WebForms.PageRequestManagerServerErrorException: An unknown error occurred while processing the request on the server."

我在頁面上有幾個更新面板和 jquery 選項卡。 而且我還在更新面板上加載了幾個用戶控件。 用戶等待幾分鍾后(未檢查時間約 40 分鍾)。 當用戶從提交按鈕發送請求時出現以下錯誤?

'Sys.WebForms.PageRequestManagerServerErrorException:
Sys.WebForms.PageRequestManagerServerErrorException: An unknown 
error occurred while processing the request on the server. The status 
code returned from the server was: 0' when calling method: 
[nsIDOMEventListener::handleEvent]

我無法追蹤這個問題來解決。 但我確定。 這是由 Ajax 引起的。大師,如果您知道解決方案。 請告訴我。

當您在多個更新面板中將控件注冊為AsyncPostbackTrigger時,有時會出現此問題。

如果這不是問題,請嘗試在腳本管理器聲明之后添加以下內容,我在manowar83 的這篇文章中找到了,它復制並稍微修改了larryw 的這篇文章

 <script type="text/javascript" language="javascript"> Sys.WebForms.PageRequestManager.getInstance().add_endRequest(EndRequestHandler); function EndRequestHandler(sender, args){ if (args.get_error() != undefined){ args.set_errorHandled(true); } } </script>

這里討論了更多的解決方案: http : //forums.asp.net/t/1066976.aspx/9/10

我遇到了這個問題,我花了幾個小時試圖解決它。

勾選為已回答的解決方案不會修復錯誤,只會處理它。

最好的方法是檢查 IIS 日志文件,錯誤應該就在那里。 更新面板似乎封裝了真正的錯誤並將其輸出為“javascript 錯誤”。

例如,我的錯誤是我忘記創建一個類 [Serializable]。 盡管這在本地運行良好,但在部署在服務器上時不起作用。

當我在 UpdatePanel 的 GridView 中有我的按鈕時出現此錯誤...調試我的代碼我發現上述錯誤是由於另一個內部錯誤“從客戶端檢測到潛在危險的 Request.Form 值”引起的

最后,我發現頁面上的一個文本框具有 XML/HTML 內容,當我刪除 xml/HTML 並測試按鈕單擊時,這反過來導致上述錯誤......它按預期工作。

此解決方案也很有幫助:

<%@ Page指令中添加validateRequest="false"

這是因為 ASP.net 會檢查來自瀏覽器的輸入是否存在危險值。 鏈接中的更多信息

哥這一段代碼不是解決辦法就改成

<script type="text/javascript" language="javascript">
    Sys.WebForms.PageRequestManager.getInstance().add_endRequest(EndRequestHandler);
    function EndRequestHandler(sender, args){
        if (args.get_error() != undefined){
            **alert(args.get_error().message.substr(args.get_error().name.length + 2));**
            args.set_errorHandled(true);
        }
    }
</script>

你會看到錯誤在那里,但你只是沒有把它扔到 UI 上。

我遇到了同樣的問題,在這里我給出我的問題和我的解決方案,希望這會對某人有所幫助:

按照其他人的建議,我轉到了以下服務器的日志(在我的情況下為 Windows Server 2012):

控制面板 -> 管理工具 -> 事件查看器

然后在左側:

Windows 日志 -> 應用程序:

在此處輸入圖片說明

在警告中,我發現了來自我網站的消息,就我而言,這是由於空引用:

*Exception type: NullReferenceException 
Exception message: Object reference not set to an instance of an object.*

檢查日志中描述的函數,我發現了一個未初始化的對象,就是這樣。

所以它可能是代碼中的空引用異常。 希望有人覺得這很有用,問候。

我也遇到了同樣的問題,但這些都沒有奏效。 在我的情況下,這是通過在配置文件中添加這些行來解決的。

<appSettings>
  <add key="aspnet:MaxHttpCollectionKeys" value="100000" />
</appSettings>

<system.web.extensions>
  <scripting>   
    <scriptResourceHandler enableCompression="false" enableCaching="true"/>       
  </scripting>
</system.web.extensions> 

這不是真正的問題,如果您想了解為什么會發生這種情況,請轉到 IIS 的錯誤日志文件。

如果是visual studio,請導航到:

C:\\Users\\User\\Documents\\IISExpress\\TraceLogFiles\\[your project name]\\.

在這里按日期降序排列文件,然后打開第一個文件。

它看起來像:

在此處輸入圖片說明

現在向下滾動到底部以查看GENERAL_RESPONSE_ENTITY_BUFFER這是實際問題。 現在解決它上面的問題會自動解決。

在此處輸入圖片說明

對於使用 Visual Studio 內部 IIS 的用戶,請嘗試以下操作:

  1. 生成錯誤消息。
  2. 在錯誤顯示處中斷調試器。
  3. 檢查調用堆棧。 你應該看到“加注”。
  4. 雙擊“加注”。
  5. 檢查“sender”參數的內部結構。 您將看到“_xmlHttpRequest”屬性。
  6. 打開“_xmlHttpRequest”屬性,您將看到“響應”屬性。
  7. “響應”屬性將包含實際消息。

我希望這可以幫助那里的人!

檢查您的Application Event Log - 我的問題是Telerik RadCompression HTTP 模塊,我在 Web.config 中禁用了該模塊。

@JS5,我也遇到了和你一樣的問題:ImageButton 只在生產服務器和 IE 上導致 UpdatePanel 內的異常。 經過一番研究,我發現了這一點:

ImageButtons 和UpdatePanels 存在問題。 .NET 4.5 的更新已在那里修復。 這與 Microsoft 將按鈕單擊的 x,y 軸從 Int 更改為 Double 相關,因此您可以知道您單擊了按鈕上的哪個位置並引發了轉換錯誤。

來源

我正在使用 NetFramework 2.0 和 IIS 6,因此,建議的解決方案是降級 IE 兼容性,添加元標記:

<meta http-equiv="X-UA-Compatible" content="IE=9" />

我僅在我需要的頁面上通過 Page_Load 方法完成了此操作:

Sub Page_Load(ByVal sender As Object, ByVal e As EventArgs)
    Dim tag As HtmlMeta = New HtmlMeta()

    tag.HttpEquiv = "X-UA-Compatible"
    tag.Content = "IE=9"

    Header.Controls.Add(tag)
End Sub

希望這可以幫助某人。

我遇到了同樣的問題,當我嘗試解決它的方法時,我發現更新面板導致了這個問題。 根據我的要求,我可以刪除更新面板並解決問題。 因此,這是該問題的可能解決方案。

我們也遇到了同樣的問題,只能在服務器上(即不能在本地,更難修復,因為我們無法調試應用程序)和使用IE時才能重現該問題。 我們有一個帶有更新面板的頁面,在這個更新面板中有一個 modalpopupextender,它也包含一個更新面板。 在嘗試了幾種不起作用的解決方案后,我們通過用鏈接按鈕替換 modalpopupextender 中的每個圖像按鈕來修復它,並在其中替換所需的圖像。

在更新面板中使用以下代碼。

<script type="text/javascript" language="javascript">
    Sys.WebForms.PageRequestManager.getInstance().add_endRequest(EndRequestHandler);
    function EndRequestHandler(sender, args){
        if (args.get_error() != undefined){
            args.set_errorHandled(true);
        }
    }
</script>

對我來說,問題是我使用的是<button>而不是<asp:LinkButton>

有時由於某些代碼,您會在文本文件中獲得 HTML 標簽,就像我用 HTML 的新行 BR 標簽替換了一些字符,並且錯誤地我也在應該在多行文本框中顯示的文本中替換了它,所以由於我的字符串替換功能,我的多行文本框有一個新的 HTML 標記 BR 動態出現,我開始收到此 JavaScript 錯誤,並且當此 HTML 代碼顯示在更新面板中的文本框中時,我開始收到此錯誤所以我做了更正,一切都很好。 因此,在復制粘貼任何內容之前,請查看您的代碼並查看所有標簽是否已正確關閉,並且文本框或下拉列表中沒有不相關的代碼數據。 這個錯誤總是由格式錯誤的標簽和不相關的數據引起的。

我對此的解決方法是刪除更新面板內的 asp.net 代碼中 TextBox 的 Text="" 屬性中的任何 HTML 標記。 如果一個頁面上有多個更新面板,它將影響所有更新面板,這使得確定哪個面板有問題變得更加困難。 上面克里斯的回答讓我找到了這個,但他的答案是一個非常隱蔽的答案,但我認為這是一個非常相關的答案,所以這里解釋了一個答案。

<asp:TextBox ID="bookingTBox" runat="server" ToolTip="" Width="150px" Text="<Auto Assigned>" CssClass="textboxItalicFormat"></asp:TextBox>

上面的代碼會出現這個錯誤。

下面不會。

<asp:TextBox ID="bookingTBox" runat="server" ToolTip="" Width="150px" Text="Auto Assigned" CssClass="textboxItalicFormat"></asp:TextBox>

在第二個文本框代碼中,我從 Text="" 屬性中刪除了 < 和 >。 請在花時間添加腳本代碼行等之前嘗試此操作。

在 iFrame 中使用 AsyncFileUploader 時遇到了這個問題。 使用 Firefox 時出現錯誤。 在 chrome 中工作得很好。 似乎父頁面或 iframe 頁面加載不同步,並且父頁面無法在 iframe 頁面上找到控件。 添加了一個簡單的 javascript 警報來說明文件已上傳。 這為控件提供了足夠的加載時間,並且由於控件可用,所有加載都沒有錯誤。

當我將項目升級到 4.5 框架並且GridView有空數據模板時,我遇到了這個問題。 發生了一些變化,之前返回空數據模板的以下語句現在返回標題行。

GridViewRow dr = (GridViewRow)this.grdViewRoleMembership.Controls[0].Controls[0];

我將其更改為下面,錯誤消失了,GridView 開始按預期工作。

GridViewRow dr = (GridViewRow)this.grdViewRoleMembership.Controls[0].Controls[1];

我希望這可以幫助別人。

我的這個問題是由數據庫映射錯誤引起的。

我試圖對數據源使用 select() 調用,但后面的代碼有錯誤。 我的控件位於更新面板中,並且隱藏了實際原因。

通常,如果您可以暫時刪除更新面板,asp.net 會返回更有用的錯誤消息。

“ 1- 轉到您的應用程序的 web.config ”

" 2- 在 < system.web > 下添加一個新條目"

3- 還找到 pages 標簽並設置 validateRequest=False

只有這對我有用。 !!

當 CDN 是根目錄時,請務必放置波浪號和正斜杠(~/)。 我認為這是IIS中的一個問題

正如我的朋友@RaviKumar 上面提到的,以下問題的一個原因是從代碼傳輸到 UI 的某些數據包含原始 html 標簽,這使請求無效,例如我有一個textarea ,在我的代碼中我通過下面的代碼設置了它的值

txtAgreement.Text = Data.Agreement

當我編譯頁面時,我可以在 textarea 中看到原始 html 標簽,所以我將 textarea 更改為div,在其上innerhtml工作並呈現 html(而不是將原始 html 標簽注入元素),它對我有用

快樂編碼

<add key="aspnet:MaxHttpCollectionKeys" value="100000"/ >

將上述密鑰添加到 Web.config 或 App.config 以消除此錯誤。

當我在更新面板中有 ModalPopupExtender 時出現此錯誤...調試我的代碼我發現上述錯誤是由於 updatepanel updatemode 是有條件的...所以我將其更改為 always 然后問題就解決了。

這在我的代碼中運行良好..我解決了我的問題..真的

web.config文件中添加以下代碼。

<system.web>
    <httpRuntime executionTimeout="999" maxRequestLength="2097151"/>
</system.web>

答案對我來說是解決其包含在其中了裝有物品─我更換了DDL帶有標簽字段的數據從一個函數生成可選擇的滔天量下拉列表模板領域的GridView控件。 (我最初打算允許 gridview 編輯,但已切換到允許在單獨的面板上進行編輯,該面板僅顯示該記錄的該字段的 DDL)。 希望這可以幫助某人。

此錯誤:Uncaught Sys.WebForms.PageRequestManagerServerErrorException ....當 Oracle 由於 sql 命令中的列/表拼寫錯誤而出現異常時,我進入了一個 UpdatePanel 的后端邏輯....

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM