2011-05-27 59 views
0

视图状态无效通过使用IIS 7.5中的this.Form.Submit 新的WebSite,我们在IIS 6.0上测试它,没关系。 但是,当我们在IIS 7.5上测试时,显示“视图状态无效”。视图状态无效通过在IIS 7.5中使用this.Form.Submit

错误信息: 端口:3739 的User-Agent:Mozilla的/ 4.0(兼容; MSIE 6.0; Windows NT的5.1; SV1) 的ViewState:/ wEPDwUJOTM1 [*] MCIg ... System.FormatException :Base-64字符数组的长度无效

[*]已被删除,因为过长,但“MCIg ...”在日志中。

我检查源和寻找下一个部分:

<asp:Button ID="Btn_search" runat="server" CssClass="submitbutton" 
    OnClientClick="javascript:this.disabled=true;this.form.submit();" 
    Text="Search" UseSubmitBehavior="False" OnClick="Btn_search_Click" /> 

当我删除[的OnClientClick = “JavaScript的:this.disabled = TRUE; this.form.submit();”]和删除[ UseSubmitBehavior = “假”。该页面将运行正常。 它看起来像[this.form.submit]导致错误。 但我测试如下 1. IIS 6.0,无代理,IE6.0或IE8.0测试OK。 2. IIS 6.0,使用代理,IE6.0或IE8.0测试OK。 3. IIS 7.5,使用代理,IE6.0或IE8.0测试OK。 4. IIS 7.5,无代理,IE6.0或IE8.0测试错误。

做任何一个知道为什么,使用代理可以,否则错误。

回答

0

您的答案可能是__doPostBack()。看看这里:

Explicit __doPostBack()

你的变异大概应该是这样的:

<asp:Button ID="Btn_search" runat="server" CssClass="submitbutton" 
    OnClientClick="this.disabled=true;__doPostBack('Btn_search','');return false;" 
    Text="Search" OnClick="Btn_search_Click" /> 
+0

谢谢您的回答,但我的问题是有关代理,为什么在与代理设置好的在IE浏览器,测试ok.and没有代理它是错误 – 2011-05-30 00:39:28

+0

我明白了。我想它不会改变任何东西,但是你是否尝试改变提交表单的方式来使用__doPostBack?也许帖子数据会以某种方式改变,错误将会消失。这需要你几分钟,所以也许值得一试。 – rciq 2011-05-30 16:16:23