2009-08-13 74 views
5
私は後に、その後のplz

Sys.WebForms.PageRequestManagerServerErrorException

を私を助けて私はいつかなく、すべての時間とノーページナビゲートし、エラーを取得していますC#のでasp.netを使用して、更新パンネルだけでなく、フラッシュ制御を使用しています

ポップアップウィンドウにmassange、次のとおりです。 -

「Sys.WebForms.PageRequestManagerServerErrorExceptionは:サーバー上の要求を処理中に不明なエラーが発生したステータスコードは、サーバから返されたのでした:0」

してくださいデモ時にアプリケーションがカーシェイする可能性があります。

+0

これをどのように修正しましたか? – James123

答えて

3

エラー0はエラーがなかったことを意味します。私はなぜそれが起こるのかわかりませんが、それが起こると、私はエラーを処理済みとしてマークし、何も爆発しません。次のJavaScriptを追加するだけで問題は消えます。

<%@ Page Language="C#" AutoEventWireup="true" CodeFile="Default.aspx.cs" Inherits="_Default" %> 

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.1//EN" "http://www.w3.org/TR/xhtml11/DTD/xhtml11.dtd"> 
<html xmlns="http://www.w3.org/1999/xhtml"> 
<head runat="server"> 
    <title>Untitled Page</title> 
</head> 
<body> 
    <form id="form1" runat="server"> 
     <asp:ScriptManager ID="ScriptManager1" runat="server" /> 
     <script type="text/javascript" > 
     (function() { 
      var prm = Sys.WebForms.PageRequestManager.getInstance(); 

      if (prm) 
      { 
       prm.add_endRequest(
       function (sender, args) {    
        // Any code you want here 

        if(args.get_error() && args.get_error().name === 'Sys.WebForms.PageRequestManagerServerErrorException') 
        { 
         args.set_errorHandled(args._error.httpStatusCode == 0); 
        } 
       }); 
      } 
     })(); 
     </script> 
    </form> 
</body> 
</html> 
5

このエラーは、私のケースでは、カレンダーコントロールがクリックされ、テキストボックスに値を入力するためにポストバックされたときに発生していました。このカレンダーコントロールはUpdatePanelにありました。このカレンダーコントロールのポストバック中に、UpdatePanelにないボタンをクリックすると(ページがポストバックする)、このエラーが発生します。

あなたはこの従うことができます:あなたは、エラーの表示を回避することができ、このスクリプトを追加することにより http://msdn.microsoft.com/en-us/library/bb398934.aspx

を。

<script type="text/javascript" language="javascript"> 
    Sys.WebForms.PageRequestManager.getInstance().add_endRequest(EndRequestHandler); 
    function EndRequestHandler(sender, args) { 
     if (args.get_error() != undefined) { 
      var errorMessage; 
      if (args.get_response().get_statusCode() == '200') { 
       errorMessage = args.get_error().message; 
      } 
      else {     
       // Error occurred somewhere other than the server page. 
       errorMessage = 'An unspecified error occurred. ';          
      } 
      args.set_errorHandled(true);     
     } 
    } 
</script> 
+0

ScriptManagerをインストールした後にこのスクリプトが置かれていることを確認してください。そうしないと、 "sys is not defined"エラーが表示されます。 –

0

私は、コントロールの1つに交互のスタイルから行方不明になった行を交互に使用リピータと同様のエラーを生成するために管理してきました。たとえば、 'Literal1'は<ItemTemplate>に定義されていますが、<AlternatingItemTemplate>には定義されていません。私はこの質問に答えられたことを認識していますが、うまくいけば、これは誰かのデバッグ時間を節約します。

関連する問題