Base-64 字符串中的无效字符,错误!期待完美的解答

程序员老干部 2007-03-09 04:14:24
我做的网站,C#+SQLSERVER2000 .net版本:1.1
本机为WINXP,服务器为WIN2003,.net版本一致
下列现象本机调试从未出现过,但上传到服务器上,外网查看经常出错。

现象一、翻页时,翻着翻着就遇到类似“视图状态无效。。。。。”
现象二、还是翻页,现在改成“Base-64 字符串中的无效字符”了
现象三、如果某页上面有按钮,单击事件上面有重定向URL时,也会经常出现现象二。
异常详细信息: System.FormatException: Base-64 字符串中的无效字符。

[FormatException: Base-64 字符串中的无效字符。]
System.Convert.FromBase64String(String s) +0
System.Web.UI.LosFormatter.Deserialize(String input) +25
System.Web.UI.Page.LoadPageStateFromPersistenceMedium() +101

[HttpException (0x80004005): Invalid_Viewstate
Client IP: 192.168.0.253
Port: 4956
User-Agent: Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1; SV1; .NET CLR 1.1.4322)
ViewState: 一大串。。。。。

Http-Referer: http://www.tsjjw.cn/searchT.aspx
Path: /searchT.aspx.]
System.Web.UI.Page.LoadPageStateFromPersistenceMedium() +447
System.Web.UI.Page.LoadPageViewState() +18
System.Web.UI.Page.ProcessRequestMain() +447

尝试过以下改动,但都不行
1、<%@ Page language="c#" ..... " enableViewStateMac="False"%>
2、Machine.cfg中的配置节:" enableViewStateMac="False"
3、web.config中的配置节: <globalization
requestEncoding="gb2312"
responseEncoding="gb2312"
/>


大家可以去http://www.tsjjw.cn/searchT.aspx,试一下

期待中.............
...全文
2093 13 打赏 收藏 转发到动态 举报
写回复
用AI写文章
13 条回复
切换为时间正序
请发表友善的回复…
发表回复
bb35214430 2012-02-08
  • 打赏
  • 举报
回复
我找了好久解决了。
是form重复问题。我页面上用了几个jq的ajax,get方法取得别的页面数据,回传中有form。
删除请求页面的form就可以了
Aplacneraby 2011-08-09
  • 打赏
  • 举报
回复
同楼上。求高手解答
「已注销」 2010-08-05
  • 打赏
  • 举报
回复
遇到同样问题了。不知你是如何解决的。现在
程序员老干部 2007-03-12
  • 打赏
  • 举报
回复
有人知道吗
程序员老干部 2007-03-10
  • 打赏
  • 举报
回复
<pages enableViewState="true" enableViewStateMac="false"></pages>
这个我也在根目录下的web.config中加上了,还是出现这种错误,真晕了
程序员老干部 2007-03-10
  • 打赏
  • 举报
回复
为什么要出现这种情况呢?如何禁用整站的VIEWSTATE的验证?
我在VS 2003的IDE中发现每个页面DOCUMENT的ENABLEVIEWSTATEMAC默认都是FALSE的,难道要我在几十个页面一个个手工修改?
醉马不肖 2007-03-10
  • 打赏
  • 举报
回复
关注一下
shalen520 2007-03-09
  • 打赏
  • 举报
回复
刚才说反了,是回传到服务端的多了两个符

另外貌似凡是出错的页面,都会多出两个字符"%2"
shalen520 2007-03-09
  • 打赏
  • 举报
回复
看了一下,出错前页面上的viewstate隐藏域有5586字节,而回传到服务端的(也就是错误提示中的)只有5584字节,页面的viewstate多了两个字符“%2”,这“%”个字符不是base64 编码, 也就是说,页面上的viewstate已经不正确了,这样传回去,肯定无法反序列化的

至于为什么会这样,还不清楚
程序员老干部 2007-03-09
  • 打赏
  • 举报
回复
上面的,我早就看过了,没多少价值
cpp2017 2007-03-09
  • 打赏
  • 举报
回复
http://community.csdn.net/Expert/topic/5374/5374463.xml?temp=0.245497065710601
cpp2017 2007-03-09
  • 打赏
  • 举报
回复
http://support.microsoft.com/kb/831150/
blackant2 2007-03-09
  • 打赏
  • 举报
回复
不验证回传的视图状态

62,025

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术交流专区
javascript云原生 企业社区
社区管理员
  • ASP.NET
  • .Net开发者社区
  • R小R
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

.NET 社区是一个围绕开源 .NET 的开放、热情、创新、包容的技术社区。社区致力于为广大 .NET 爱好者提供一个良好的知识共享、协同互助的 .NET 技术交流环境。我们尊重不同意见,支持健康理性的辩论和互动,反对歧视和攻击。

希望和大家一起共同营造一个活跃、友好的社区氛围。

试试用AI创作助手写篇文章吧