当我将运行在IIS 5.1中的asp.net 1.1应用程序迁移到另一个使用IIS 7.5的Web服务器Vista并在应用程序池目标2.0中运行该应用程序时,它在某些页面中给出了以下错误。 Web应用程序正在运行,在某些页面中,它在某些页面中给出了以下错误。
"此页面的状态信息无效,可能已损坏。
描述:执行当前Web请求期间发生了未处理的异常。请查看堆栈跟踪以获取有关错误及其源自代码的位置的更多信息。
异常详细信息:System.Web.HttpException:此页面的状态信息无效,可能已损坏。
来源错误:
生成此未处理异常的源代码只能在调试模式下编译时显示。要启用此功能,请按照以下步骤之一,然后请求网址:
- 添加" Debug = true"生成错误的文件顶部的指令。例如:
醇>
或:
2)将以下部分添加到应用程序的配置文件中:
请注意,第二种技术将导致给定应用程序中的所有文件都以调试模式进行编译。第一种技术只会导致在调试模式下编译该特定文件。
重要:在调试模式下运行应用程序会产生内存/性能开销。在部署到生产方案之前,应确保应用程序已禁用调试。
堆栈追踪:
[FormatException:Base-64字符串中的字符无效。]
System.Convert.FromBase64String(String s)+0
System.Web.UI.ObjectStateFormatter.Deserialize(String inputString)+77
System.Web.UI.ObjectStateFormatter.System.Web.UI.IStateFormatter.Deserialize(String serializedState)+4
System.Web.UI.ClientScriptManager.EnsureEventValidationFieldLoaded()+57
[ViewStateException:viewstate无效。客户端IP:10.28.19.31端口:56926
User-Agent: Mozilla/4.0 (compatible; MSIE 7.0; Windows NT 6.1; WOW64; Trident/4.0; SLCC2; .NET CLR 2.0.50727; .NET4.0C; .NET4.0E; .NET CLR 3.5.30729; .NET CLR 3.0.30729; .NET CLR 1.1.4322)
[HttpException(0x80004005):此页面的状态信息无效,可能已损坏。]
System.Web.UI.ViewStateException.ThrowError(Exception inner,String persistedState,String errorPageMessage,Boolean macValidationError)+106
System.Web.UI.ViewStateException.ThrowViewStateError(Exception inner,String persistedState)+14
System.Web.UI.ClientScriptManager.EnsureEventValidationFieldLoaded()+85
System.Web.UI.ClientScriptManager.ValidateEvent(String uniqueId,String argument)+67
System.Web.UI.Control.ValidateEvent(String uniqueID,String eventArgument)+69
System.Web.UI.HtmlControls.HtmlInputHidden.LoadPostData(String postDataKey,NameValueCollection postCollection)+94
System.Web.UI.HtmlControls.HtmlInputHidden.System.Web.UI.IPostBackDataHandler.LoadPostData(String postDataKey,NameValueCollection postCollection)+13
System.Web.UI.Page.ProcessPostData(NameValueCollection postData,Boolean fBeforeLoad)+343
System.Web.UI.Page.ProcessRequestMain(Boolean includeStagesBeforeAsyncPoint,Boolean includeStagesAfterAsyncPoint)+6785
System.Web.UI.Page.ProcessRequest(Boolean includeStagesBeforeAsyncPoint,Boolean includeStagesAfterAsyncPoint)+242
System.Web.UI.Page.ProcessRequest()+80
System.Web.UI.Page.ProcessRequestWithNoAssert(HttpContext context)+21
System.Web.UI.Page.ProcessRequest(HttpContext context)+49
System.Web.CallHandlerExecutionStep.System.Web.HttpApplication.IExecutionStep.Execute()+ 181
System.Web.HttpApplication.ExecuteStep(IExecutionStep step,Boolean& completedSynchronously)+75
版本信息:Microsoft .NET Framework版本:2.0.50727.4959; ASP.NET版本:2.0.50727.4955"
之后,我尝试在该服务器中安装.NET Framework 1.1,并将该Web应用程序分配给以经典模式为目标的1.1框架的应用程序池。之后,该应用程序在尝试运行该应用程序并显示" service stooped"时自动停止。错误。
由于此应用程序位于ASP.NET 1.1中且目标框架为1.1,因此我们无法实现ASP.NET 2.0功能来处理ViewState。
我已尝试过以下其他许多技巧,但没有运气:(
页面enableEventValidation =" false" viewStateEncryptionMode ="从不"。
还有所有其他相关配置。但所有都与.NET Framework 2.0或更高版本相关。
在这里,我提供了一些解决方案的线索,以便您可以轻松地给出答案。
CLUE
尝试使用经典模式在面向.NET Framework 1.1的应用程序池中运行应用程序时,我有一些日志信息。如果有人需要知道,请告诉我,以便我可以在这里分享。