2011-01-26 12 views
4

最近私のサイトでELMAHが実装されましたが、「Base-64文字列の文字が無効です」というエラーが頻繁に発生することに気付きました。私はそれ自身を引き起こしたことはありませんでした。ユーザーの誰もそれに不平を感じていないので、何が起こっているのか分かりません。小さなものから私はそれについて見ることができましたviewstateが大きすぎるか腐敗しているか何かになるかもしれないように思えます。誰が原因とそれを防止する方法を知っていますか?ここに私はYSODの関連する行と信じています。ASP.NET Base-64文字列の文字が無効

[FormatException: Invalid character in a Base-64 string.] 
[ViewStateException: Invalid viewstate. 
[HttpException (0x80004005): The client disconnected.] 

これらのエラーについて何かできることはありますか、それともELMAHでフィルタリングすればよいですか?

答えて

2

これは物事の構成方法である可能性があります。これを見てください:

http://groups.google.com/group/elmah/browse_thread/thread/ec9c4bdddaa1a9e/9108b48d3def87db?lnk=gst&q=viewstate+elmah#9108b48d3def87db

UPDATE

試してみて、それが発生している場所を特定。いくつかの潜在的な原因があるかもしれません:

日の終わりに

"Invalid Character in Base-64 String" using ASP.NET and C#

asp.net Invalid character in a Base-64 string

、あなたが言うように、それはあなたがこれらのエラーをフィルタリングすることができ、生産に支障が生じていない場合。 EnableViewStateMacをfalseに設定してみてください。

+0

Hmm。だから、このエラーは修正できません。私は心配すべきではない何か? – William

+0

@William、更新情報:-) – IrishChieftain

4

私の経験では、このエラーは、ユーザーがポストバックをトリガーするボタンをダブルクリックすることによって発生する傾向があります。 2番目のポストバック要求は最初のポストバック要求を破棄します。最初のリクエストのviewstateは部分的にしか送信されないため、無効ですが、ブラウザが切断されたためにエラーをブラウザに送信することはできません。これはトップレベルのエラーを引き起こします。これは、ユーザーが何かを2回することで問題が発生した場合、より大きな問題になる可能性があります。そうしないと、これらのエラーを簡単にフィルタリングできます。ここでELMAHで同様のエラーをフィルタリングする良い例です: https://stackoverflow.com/a/2549509/267448

あなたはASP.NET Webフォームを使用している場合は、ここでポストバック時にトリガ制御を無効にするいくつかのコードです: http://disturbedbuddha.wordpress.com/2007/12/10/disabling-a-trigger-control-during-asynchronous-postback/

用心無効場合にHTML <入力タイプ= "submit" >ボタンはフォーム変数から除外されているため、サーバーサイドのClickイベントは発生しません。 <入力タイプ= "ボタン"に変更する>はそれを修正します。 Webフォームでは、< asp:Button UseSubmitBehavior = "False"/>となります。

上記はWebForms AJAXページで動作しますが、ここでは他のページでも少し出てきたjQueryもあります。

$(function() { 
    $("a[href^='javascript']").click(function (event) { 
     if (event.target.disabled) 
      return false; 
     event.target.disabled = true; 
     setTimeout(function() {event.target.disabled = false;}, 250); 
    }); 
}); 
+0

も参照してくださいEncosia Postback Ritalin:http://encosia.com/downloads/postback-ritalin/ https://github.com/Encosia/PostBackRitalin – user423430

+0

ありがとう! NuGetパッケージとしても入手できます:http://nuget.org/packages/PostBackRitalin –

関連する問題