簡體   English   中英

無效的回發或回調參數/無效的viewstate

[英]Invalid postback or callback argument / Invalid viewstate

我們在IIS 7.5上運行了asp.net(v3.5)網站,我們的應用程序池位於2.0中。 該站點也位於帶有粘性會話的負載均衡服務器場上。 平均每天,我們會收到大約200到300個viewstate錯誤,而回發錯誤則是每天1,000到2,000。

回發錯誤最多的頁面包含一個ASP數據列表,該列表綁定了許多項目。 以及用於過濾和分頁的下拉菜單,以及一些回發的asp超鏈接。

對於視圖狀態,這些頁面使用ajax選項卡,asp超鏈接,模式彈出擴展程序和asp下拉菜單。

該網站確實獲得了大量的訪問量,並且有許多諸如Google和MSN之類的機器人在訪問它。

我們嘗試了以下方法:

  • 在某些控件上禁用viewstate以最小化viewstate的大小
  • 將viewstate移入數據庫
  • 壓縮視圖狀態
  • 將viewstate移至頁面底部

以上都不對我們的問題有所幫助。

非常感謝您在解決此問題方面的任何幫助。

更新了錯誤信息:

  • 視圖狀態

錯誤源:System.Web

錯誤嘗試/捕獲:System.Web.UI.ViewStateException:無效的視圖狀態。 客戶端IP : 端口:* **的User-Agent:Mozilla的/ 4.0(兼容;突觸)的ViewState:00ytitesern5vnudvqgz rneo / nncjwe2gqvm9hwsejfneaemuijx m43rkjqdgmurhezuvzjtw FCU / cbzrx0xfscog4bv07c1fi7ali / 883amvbby5owiliaihufk4fvbn1wgarkbwxmmionsf0jcgw6wlnppj3ww8nmd3 423pu91yexxuyuygxpnu9osgzvxre5wfjlhlhg4ngo1bxdgekgfilzqbxjq58w2aqc7gvdj1ytz4xshkzvjdldiecewgfokt / ot2cpecb bavgiy2f / lvfjg4h9kmuvumsgrbkc6enfnfa0eqce2fi2hj3jo1qqchwsvty8l9uaq6k8oq6ctsggrtyr3xnd 654w6nmldj W8üvvbaez6hm5zofqxnfrzobik6qbqq5dd7qrozuiu abdvgg xaa5jjm9o5 / rroxkrx2fzzhkzjij0xc9p6jenvht 0mplciq4xnewyotosx86axuioyb0yww2phkothy2zok7j2q / xz4j29zz2drnmqj1km 3J mofii0kk0qe0 / s8mkotmhtk4k rfyfja / h7wtebpualg3hg9ydru3yn6pfimay2aasoloydvmj / xfffd tknfqeg7da7 / n2flq6hczcolanyjsxf9ofstomby4flhcyuuq / hqg7pc8qvrqy0s / seqyqkr 1ne7bktrazjwlgygpprawneml8f1kbujtbjtz7feieyzu76j1mnt agwlrhgchwjmux58cjlu2bbh7ayitfevapzt21pn92du5zcnmiajfxfou1motqkl8hqmlbjj0hxhpi5j5gg5xdxpz5xkqfdflw2wgqvfjxilhqm6mwyjsmif6r8wtdjkrsxxmapyeq61lfa8 7zntc2v3v8rup1kgm0ssp7bb zgcfy ...

錯誤信息:驗證視圖狀態MAC失敗。 如果此應用程序由Web場或群集托管,請確保| machineKey |。 配置指定相同的validationKey和驗證算法。 自動生成不能在群集中使用。

HttpErrorCode:500

堆棧跟蹤:位於System.Web.UI.Util.DeserializeWithAssert處的System.Web.UI.ObjectStateFormatter.Deserialize(String inputString)處的System.Web.UI.ViewStateException.ThrowError(Exception內部,字符串persistState,字符串errorPageMes​​sage,布爾值macValidationError) (IStateFormatter格式化程序,String serializedState)在System.Web.UI.Page.LoadAllState()在System.Web.UI.Page.LoadPageStateFromPersistenceMedium()在System.Web.UI.HiddenFieldPageStatePersister.Load()。 System.Web.UI.Page.ProcessRequest(System.Web.UI.Page.ProcessRequest()的System.Web.UI.Page.ProcessRequest(Boolean includeStagesBeforeAsyncPoint,Boolean includeStagesBeforeAsyncPoint)的System.Web.UI.Page.ProcessRequest()的Page.ProcessRequestMain(Boolean ASP.content_aspx.ProcessRequest上的HttpContext上下文)(System.Web.HttpApplication.CallHandlerExecutionStep.System.Web.HttpApplication.IExecutionStep.Execute()的System.Web.HttpApplication.ExecuteSte p(IExecutionStep步驟,布爾值並已完成同步)

瀏覽器:Mozilla / 4.0(兼容; Synapse)

  • 回發錯誤源:System.Web

錯誤嘗試/捕獲:System.ArgumentException:無效的回發或回調參數。 使用| pages enableEventValidation = | true | / |啟用事件驗證。 在配置中或|%@頁面EnableEventValidation = | true | %| 在頁面中。 為了安全起見,此功能會驗證回發或回調事件的參數源自** _ sQueEl_clean最初提供它們的服務器控件。 如果數據有效且預期,請使用ClientScriptManager.RegisterForEventValidation方法以注冊回發或回調數據以進行驗證。 在System.Web.UI.WebControls.TextBox.LoadPostData(String postDataKey,NameValueCollection postCollection)的System.Web.UI.WebControls.TextBox.LoadPostData(NameValueCollection postCollection)的System.Web.UI.ClientScriptManager.ValidateEvent(String uniqueId,String parameter) System.Web.UI.Page.ProcessRequestMain處的布爾值fBeforeLoad)(布爾值includeStagesBeforeAsyncPoint,布爾值includeStagesAfterAsyncPoint)

錯誤信息:類型| System.Web.HttpUnhandledException |的異常 被扔了。

HttpErrorCode:500

堆棧跟蹤:位於System.Web.UI.Page.ProcessRequestMain(Boolean包括System.Web.UI.Page.ProcessRequest(Boolean includeStagesBeforeAsyncPoint)的System.Web.UI.Page.HandleError(Exception e)(Boolean includeStagesBeforeAsyncPoint) )在System.Web.UI.Page.ProcessRequest()在System.Web.UI.Page.ProcessRequest(HttpContext上下文)在ASP.category_aspx.ProcessRequest(HttpContext上下文)在System.Web.HttpApplication.CallHandlerExecutionStep.System.Web。 System.Web.HttpApplication.ExecuteStep上的HttpApplication.IExecutionStep.Execute()(IExecutionStep步驟,布爾值和已完成同步)

瀏覽器:Mozilla / 5.0(iPhone; CPU iPhone OS 6_0_1,例如Mac OS X)AppleWebKit / 536.26(KHTML,例如Gecko)版本/6.0 Mobile / 10A523 Safari / 8536.25

服務器場中所有服務器上的機器密鑰( http://msdn.microsoft.com/zh-cn/library/w8h3skw9%28v=vs.71%29.aspx )值是否相同?

我也看到過類似的問題,經調查我們可以得出結論,這是由垃圾郵件攻擊我們的網站引起的-即,嘗試在未先獲得正確的viewstate的情況下提交值,並且viewstate確實在按照其設計的目的進行操作(保護回發免受無效數據的侵害-惡意或其他)。

我希望這也可能是您所看到的。 如果您遇到許多像Google和MSN這樣的機器人 ,那么幾乎可以肯定的是您也遇到了不好的機器人。

請參閱以下SO搜索結果: https : //stackoverflow.com/search?q=asp.net+spambot

此類文章可能有助於減輕您對錯誤的擔心。

錯誤消息使我們陷入困境,試圖發現復雜的內部問題,而不是僅僅按照“在野外,這種情況下最簡單,最可能的原因”明確說明某些內容,這確實讓我感到奇怪是您被垃圾郵件機器人打中了”,其中包含一些建議或文章,以指導您如何確認這一點。

暫無
暫無

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

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