【发布时间】:2015-12-06 21:27:36
【问题描述】:
早上好。我在担任 IT 职位时继承了一个程序,而且我不是很精通 SQL/VB。
另外,我在网上研究过这个错误,但在尝试他们的解决方案时,我仍然得到错误。
这是我收到的错误:
消息:Base-64 字符数组或字符串的长度无效。资源: mscorlib 方法:FromBase64_Decode 行:0 列:0 案例:
案例 ID:0 活动选项卡:0 上次活动选项卡:0 当前列表 ID:0堆栈跟踪:在 System.Convert.FromBase64_Decode(Char* startInputPtr, Int32 inputLength, Byte* startDestPtr, Int32 destLength) 在 System.Convert.FromBase64CharPtr(Char* inputPtr, Int32 inputLength) 在 System.Convert.FromBase64String(String s)
在 System.Web.UI.ObjectStateFormatter.Deserialize(字符串输入字符串, 目的目的)在 System.Web.UI.Util.DeserializeWithAssert(IStateFormatter2 格式化程序, String serializedState,Purpose purpose) at System.Web.UI.HiddenFieldPageStatePersister.Load()
我相信它来自 VB Studio 2012 中此示例代码的 UrlDecode:
Case "CaseSetup"
hlCaseSetupLink.Text = getShortFileNameFromPath(sPath)
hlCaseSetupLink.NavigateUrl = "File:///" & sPath
hlCaseSetupLink.NavigateUrl = HttpUtility.UrlDecode(hlCaseSetupLink.NavigateUrl)
updateCaseSetup()
就在最后一行 updateCaseSetup() 之前,我插入了以下代码来补偿 UrlDecode 创建的任何空格,并使用加号来保持 Base-64 兼容性:
hlCaseSetupLink.NavigateUrl = Replace(hlCaseSetupLink.NavigateUrl, " ", "+")
另外,作为参考,这段代码用于在我使用的自定义程序中创建的 8 个选项卡,并且重复了 8 次,但代码中的选项卡名称不同。
这对任何人都有意义吗?
感谢大家的宝贵时间。非常感谢。
【问题讨论】:
-
嗯,您向我们展示的内容根本不像 SQL 代码,也不是来自 SQL Server 的错误,AFAIK。请向我们展示更多代码,尤其是关于您正在做什么以及如何执行的更多上下文。
-
为混淆道歉,@RBarryYoung,它是利用 SQL Server 2008 信息的 Visual Basic 代码。上下文是一个带有 8 个选项卡的菜单。选择客户后,您有 8 个选项卡可供选择,这些选项卡与客户的具体情况相关。这段代码来自一个子程序,并重复了 7 次,但略有不同。至于附加代码,我不确定您还需要什么。
-
自上述更改以来,该错误是新的吗?还是在错误开始发生后您进行了更改?
-
您能告诉我们发生错误时 NavigateUrl 中的内容吗?
-
@RBarryYoung 我仍在尝试查找创建错误通知的原因,但一旦找到,我将包含该值
标签: asp.net vb.net sql-server-2008 visual-studio-2012 base64