当我将站点部署到负载平衡服务器时,我遇到了一些问题。堆栈跟踪如下。任何帮助将不胜感激
[FileNotFoundException:无法加载 文件或程序集'App_Web_ujlndqyx, 版本= 0.0.0.0,文化=中立, PublicKeyToken = null'或其中一个 依赖。系统找不到 指定的文件。]
System.RuntimeTypeHandle._GetTypeByName(字符串 name,Boolean throwOnError,Boolean ignoreCase,Boolean reflectionOnly, StackCrawlMark&安培; stackMark,布尔 loadTypeFromPartialName)+0
System.RuntimeTypeHandle.GetTypeByName(字符串 name,Boolean throwOnError,Boolean ignoreCase,Boolean reflectionOnly, StackCrawlMark&安培; stackMark)+54
System.RuntimeType.PrivateGetType(字符串 typeName,Boolean throwOnError, Boolean ignoreCase,Boolean reflectionOnly,StackCrawlMark& stackMark)+39
System.Type.GetType(String typeName, Boolean throwOnError)+60
System.Web.UI.ObjectStateFormatter.DeserializeType(SerializerBinaryReader 读者)+201
System.Web.UI.ObjectStateFormatter.DeserializeValue(SerializerBinaryReader 读者)+955
System.Web.UI.ObjectStateFormatter.DeserializeValue(SerializerBinaryReader 读者)+395
System.Web.UI.ObjectStateFormatter.DeserializeValue(SerializerBinaryReader 读者)+205
System.Web.UI.ObjectStateFormatter.DeserializeValue(SerializerBinaryReader 读者)+218
System.Web.UI.ObjectStateFormatter.DeserializeValue(SerializerBinaryReader 读者)+205
System.Web.UI.ObjectStateFormatter.Deserialize(流 inputStream)+163[ArgumentException:序列化 数据无效。]
System.Web.UI.ObjectStateFormatter.Deserialize(流 inputStream)+228
System.Web.UI.ObjectStateFormatter.Deserialize(字符串 inputString)+303
System.Web.UI.ObjectStateFormatter.System.Web.UI.IStateFormatter.Deserialize(字符串 serializedState)+5
System.Web.UI.Util.DeserializeWithAssert(IStateFormatter formatter,String serializedState)+37 System.Web.UI.HiddenFieldPageStatePersister.Load() 116[ViewStateException:无效 视图状态。客户IP:114.130.35.83 端口:2161用户代理:Mozilla / 5.0 (Windows NT 6.1; WOW64; rv:2.0.1) Gecko / 20100101 Firefox / 4.0.1 ViewState的: / wEPDwUJMzI0MDgwMzY4DxYCHgtDdXJyZW50VmlldwspbE9yZGVySm91cm5leURlZmF1bHQrQ3VycmVudFZpZXdFbnVtLCBBcHBfV2ViX3VqbG5kcXl4LCBWZXJzaW9uPTAuMC4wLjAsIEN1bHR1cmU9bmV1dHJhbCwgUHVibGljS2V5VG9rZW49bnVsbAIWAmYPZBYCAgMPZBYGAgMPFgIeCWlubmVyaHRtbAXSBDx1bD4KPGxpPjxhIGNsYXNzPSJzZWxlY3RlZCIgaHJlZj0iaHR0cHM6Ly9idXNpbmVzcy5idC5jb20vIj5CdXNpbmVzcyBob21lPC9hPjwvbGk + CjxsaSBjbGFzcz0iaGFzX2Ryb3BfZG93biBzZWxlY3RlZCI + IDxhIGhyZWY9Imh0dHBzOi8vYnVzaW5lc3MuYnQuY29tL3Byb2R1Y3RzLWFuZC1zZXJ2aWNlcy8iPlByb2R1Y3RzICZhbXA7IHNlcnZpY2VzPC9hPiA8YSBjbGFzcz0iZHJvcF9kb3duIiBocmVmPSIjZm9vdGVyIj5WaWV3IHByb2R1Y3RzIGFuZCBzZXJ2aWNlcyAocG9wLXVwKTwvYT4gPC9saT4KPGxpPjxhIGhyZWY9Imh0dHBzOi8vYnVzaW5lc3MuYnQuY29tL3BhY2thZ2VzLyI + UGFja2FnZXM8L2E + PC9saT4KPGxpPjxhIGhyZWY9Imh0dHA6Ly93d3cuaW5zaWdodC5idC5jb20vIj5CdXNpbmVzcyBpbnNpZ2h0PC9hPjwvbGk + CjxsaT48YSBocmVmPSJodHRwczovL3d3dy5idC5jb20vY21wL3B1YmxpYy9odWIuZG8iPllvdXIgYWNjb3VudD ...]
[HttpException(0x80004005):状态 信息对此页面无效 并且可能已损坏。]
System.Web.UI.ViewStateException.ThrowError(例外 inner,String persistedState,String errorPageMessage,布尔值 macValidationError)+118
System.Web.UI.ViewStateException.ThrowViewStateError(例外 inner,String persistedState)+13
System.Web.UI.HiddenFieldPageStatePersister.Load() +222 System.Web.UI.Page.LoadPageStateFromPersistenceMedium() +107 System.Web.UI.Page.LoadAllState()+43 System.Web.UI.Page.ProcessRequestMain(布尔 includeStagesBeforeAsyncPoint,Boolean includeStagesAfterAsyncPoint)+6230
System.Web.UI.Page.ProcessRequest(布尔 includeStagesBeforeAsyncPoint,Boolean includeStagesAfterAsyncPoint)+247
System.Web.UI.Page.ProcessRequest() +79 System.Web.UI.Page.ProcessRequestWithNoAssert(HttpContext 上下文)+23
System.Web.UI.Page.ProcessRequest(HttpContext的 上下文)+111
ASP.toj_application_orderjourney_default_aspx.ProcessRequest(HttpContext的 上下文) C:\ WINDOWS \ Microsoft.NET \框架\ V2.0.50727 \临时 ASP.NET 文件\ ROOT \ 82a64fa9 \ 62e4fa0 \ App_Web_fewmyzsj.0.cs:0 System.Web.CallHandlerExecutionStep.System.Web.HttpApplication.IExecutionStep.Execute() +406 System.Web.HttpApplication.ExecuteStep(IExecutionStep 步,布尔& completedSynchronously) 76
答案 0 :(得分:2)
将放置在viewstate中的类移动到单独的程序集中,而不是移动到Web项目程序集中。 如果不这样做,则动态编译aspx代码将生成临时名称,所有Web服务器都不同
答案 1 :(得分:2)
我有同样的问题,但现在设法治愈它。我们正在运行一个包含2台服务器的Web场。机器键匹配。我认为我的问题与使用Oracle的会话状态软件有关。当我把任何对象,一个简单的列表,在视图状态中出错时。一旦它在其他服务器上回送服务而不是原始获取服务,我就会收到此错误。
我注意到两个有趣的项目:
在服务器上提供请求时无法找到的文件名 A,在服务器A上不存在,但它是文件的名称 服务器B.文件名的不同之处在于它添加的哈希值 结束,
服务器A上的App_Web_form_create_excel_data_template.aspx.cdcab7d2.wpiiisfb
和
服务器B上的App_Web_form_create_excel_data_template.aspx.cdcab7d2.lkw6qbsg.dll
。每个服务器上的.compile文件指向正确的文件。
oracle数据库中的会话状态oracle存储成为 腐败和无法使用。它的锁定列从未得到1 清除。我必须删除该行或删除asp.net会话 来自浏览器的cookie。
然后,由于Microsoft知识库文章Troubleshooting the "View state is invalid" error with ASP.NET,我找到了解决方案。
我已将变量声明为enum并将其保存在viewstate中。我假设枚举被视为动态类,因此文章指出源文件的名称用于序列化作为枚举的viewstate项目!由于源文件的名称在构成服务器场的2个Web服务器上不同,因为它在一个服务器上序列化其值并尝试在另一个服务器上反序列化其值时发生错误!
答案 2 :(得分:0)
您的内部异常约为ViewState
但有关未找到文件的异常:
[FileNotFoundException: Could not load file or assembly 'App_Web_ujlndqyx, Version=0.0.0.0, Culture=neutral, PublicKeyToken=null' or one of its dependencies. The system cannot find the file specified.]
这意味着您的服务器尝试解析某些类类型,但未找到任何相应的类型。 试着检查一下: