ページにいくつかの更新パネルと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
として登録されているコントロールがある場合に発生することがあります。
それが問題でない場合は、スクリプトマネージャーの宣言の直後に次を追加してみてください。
<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/1
私はこの問題を抱えていて、それを修正しようとして何時間も費やしました。
回答済みとしてチェックされたソリューションは、エラーを修正するだけではなく、それを処理します。
最善の方法は、IISログファイルとエラーがあるはずです。更新パネルは実際のエラーをカプセル化し、「javascriptエラー」として出力するようです。
例えば、私のエラーは、クラスを作成するのを忘れたことでした[シリアル化可能]。これはローカルで正常に機能しましたが、サーバーにデプロイされたときには機能しませんでした。
UpdatePanelのGridViewにボタンがあるときにこのエラーが発生しました。コードをデブすると、上記のエラーは別の内部エラー「クライアントから潜在的に危険なRequest.Form値が検出された」が原因であることがわかりました
最後に、ページ上のTextBoxの1つにXML/HTMLコンテンツがあり、xml/HTMLを削除してボタンクリックをテストすると、上記のエラーが順番に発生することがわかりました。
このソリューションも役立ちます。
追加 validateRequest="false"
の中に <%@ Page
ディレクティブ。
これは、ASP.netがブラウザからの入力を調べて危険な値を探しているためです。詳細はこちら link
兄弟このコードは解決策ではありません
<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ログ->アプリケーション:
警告で自分のサイトからのメッセージを見つけましたが、私の場合はnull参照が原因でした:
*Exception type: NullReferenceException
Exception message: Object reference not set to an instance of an object.*
そして、ログに記述されている関数をチェックすると、初期化されていないオブジェクトが見つかりました。
したがって、コード内のnull参照例外である可能性があります。誰かがこの便利な挨拶を見つけることを願っています。
私も同じ問題に直面しましたが、どれも機能しませんでした。私の場合、これは設定ファイルにこれらの行を追加することで修正されました。
<appSettings>
<add key="aspnet:MaxHttpCollectionKeys" value="100000" />
</appSettings>
<system.web.extensions>
<scripting>
<scriptResourceHandler enableCompression="false" enableCaching="true"/>
</scripting>
</system.web.extensions>
@ JS5、私もあなたと同じ問題に直面しました:実稼働サーバーとIEでのみUpdatePanel内で例外を発生させるImageButton。いくつかの調査の後、私はこれを見つけました:
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
これが誰かを助けることを願っています。
Application
Event Log
-私の問題はTelerik RadCompression
Web.configで無効にしたHTTPモジュール。
これは本当の問題ではありません。なぜこれが起こっているのかを知りたい場合は、IISのエラーログファイルにアクセスしてください。
visual Studioの場合は、次の場所に移動してください。
C:\Users\User\Documents\IISExpress\TraceLogFiles\[your project name]\.
ここでファイルを日付ごとに降順に並べ、最初のファイルを開きます。
次のようになります。
一番下までスクロールして、GENERAL_RESPONSE_ENTITY_BUFFER
それは実際の問題です。上記の問題が自動的に解決します。
"1-アプリケーションのweb.configに移動します"
「2-<system.web>の下に新しいエントリを追加します」
3-また、ページタグを見つけて、validateRequest = Falseを設定します
これだけが私のために機能します。 !!
Visual Studioの内部IISを使用している場合は、次を試してください。
これが誰かに役立つことを願っています!
また、同じ問題に直面しましたが、問題はサーバーでしか再現できませんでした(つまり、ローカルではなく、アプリケーションをデバッグできなかったため修正がさらに困難になりました)、およびIEを使用している場合にのみ可能です。更新パネルのあるページと、この更新パネル内にmodalpopupextenderがあり、そこにも更新パネルが含まれていました。動作しなかったいくつかの解決策を試した後、モーダルポップアップエクステンダー内のすべての画像ボタンをリンクボタンに置き換え、その中で必要な画像を修正することで修正しました。
私は同じ問題を抱えていました、それを解決する方法を試していたとき、更新パネルがこの問題を引き起こしていることがわかりました。私の要件に応じて、更新パネルを削除して問題を取り除くことができます。だから、それは問題の可能な解決策です。
更新パネルにModalPopupExtenderがあったときにこのエラーが発生しました...コードを削除すると、上記のエラーはupdatepanel updatemodeが条件付きであることが原因であることがわかりました...常に変更すると問題は解決します。
これに対する私の修正は、更新パネル内のasp.netコードのTextBoxのText = ""プロパティにあるHTMLマークアップを削除することでした。 1ページに複数の更新パネルがある場合、それらすべてに影響するため、どのパネルに問題があるかを判断するのが難しくなります。上記のクリスの答えは私にこれを見つけさせましたが、彼は非常に隠された答えですが、私は非常に関連性の高い答えだと思いますので、ここで答えを説明します。
<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>
2番目のテキストボックスコードでは、Text = ""プロパティから<と>を削除しました。スクリプトコードなどの行を追加する前に、これを試してください。
私にとって問題は、<button>
の代わりに<asp:LinkButton>
<add key="aspnet:MaxHttpCollectionKeys" value="100000"/ >
このエラーを削除するには、上記のキーをWeb.configまたはApp.configに追加します。
いくつかのコードが原因で、テキストフィールドにHTMLタグを取得することがあります。たとえば、一部の文字をHTMLの改行BRタグに置き換え、誤ってマルチラインテキストボックスに表示されるはずのテキストに置き換えました。私の複数行テキストボックスには、文字列置換機能のために動的に来る新しい行HTMLタグBRがあり、このJavaScriptエラーが発生し始め、このHTMLコードが更新パネルにあるテキストボックスに表示されたため、このエラーが発生し始めましただから私は修正を行い、すべてが大丈夫だった。したがって、貼り付けをコピーする前に、コードを調べて、すべてのタグが適切に閉じられており、テキストボックスまたはドロップダウンリストに無関係なコードデータがないことを確認してください。このエラーは常に不正な形式のタグと無関係なデータが原因で発生します。
これは私のコードでうまく機能していました..問題を解決しました..本当に
web.configファイルに以下のコードを追加します。
<system.web>
<httpRuntime executionTimeout="999" maxRequestLength="2097151"/>
</system.web>
プロジェクトを4.5フレームワークにアップグレードしたときにこの問題が発生し、GridView
に空のデータテンプレートがありました。何かが変更され、以前は空のデータテンプレートを返していた次のステートメントがヘッダー行を返していました。
GridViewRow dr = (GridViewRow)this.grdViewRoleMembership.Controls[0].Controls[0];
以下に変更すると、エラーがなくなり、GridViewが期待どおりに動作し始めました。
GridViewRow dr = (GridViewRow)this.grdViewRoleMembership.Controls[0].Controls[1];
これが誰かの助けになることを願っています。
CDNがルートディレクトリの場合は、必ずチルダとスラッシュ(〜/)を入力してください。 IISの問題だと思います
私にとってこの問題は、データベースマッピングエラーが原因でした。
コードビハインドにエラーがあるデータソースでselect()呼び出しを使用しようとしました。私のコントロールは更新パネル内にあり、実際の原因は隠されていました。
通常、更新パネルを一時的に削除できる場合、asp.netはより有用なエラーメッセージを返します。
IFrameでAsyncFileUploaderを使用するときにこの問題が発生していました。 firefoxの使用時にエラーが発生しました。作業中chrome=うまくいきました。親ページまたはiframeページのいずれかが非同期でロードされ、親ページがiframeページのコントロールを見つけることができなかったようです。ファイルがアップロードされたと言います。これにより、コントロールがロードするのに十分な時間が与えられ、コントロールが使用可能になったため、エラーなしですべてがロードされました。
Updatepanel内で次のコードを使用します。
<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>
上記の私の友人@RaviKumarが次の問題の1つの理由として、コードからUIに転送されたデータの一部にリクエストを無効にする生のhtmlタグが含まれているため、たとえばtextareaがあり、私のコードには以下のコードで値を設定します
txtAgreement.Text = Data.Agreement
ページをコンパイルすると、textarea内に生のhtmlタグが表示されるので、textareaをdivに変更し、その上でinnerhtmlが機能し、htmlをレンダリングします(要素に生のhtmlタグを挿入する代わりに) )そしてそれは私のために働いた
ハッピーコーディング
私のための答えは、monstrous amount of selectable items-でロードされたドロップダウンリストを持つテンプレートフィールドを含むgridviewコントロールを修正することでした-私はDDLを、関数。 (私はもともとgridview編集を許可するつもりでしたが、そのレコードのそのフィールドのDDLを表示する別のパネルで編集を許可するように切り替えました)。これが誰かを助けるかもしれないことを願っています。