脚本资源和Web资源文件在我的应用程序中生成间歇性错误.我一直试图追逐问题的原因,但无济于事.我注意到传递的"d"参数是一些损坏程度,我不能为我的生活弄清楚是什么导致这个参数被破坏.我注意到在我的应用程序中的JavaScript代码是如何与为"d"参数生成的哈希代码交织在一起的.
Exception genereated on Monday, January 26, 2009, at 2:20 AM Page location: /ScriptResource.axd?d=y9_dUwBeGqLlRpT5Dml1zhoQvfa7NKdj69EYuV771kzSsa5KOOXBfJZjk%20%20%20%20%20%20%20%20%20%20%20%20if%20(cat_gallery%20!= Requested Url : http://garmn.factoryoutletstore.com/ScriptResource.axd?d=y9_dUwBeGqLlRpT5Dml1zhoQvfa7NKdj69EYuV771kzSsa5KOOXBfJZjk if (cat_gallery != Message: Exception has been thrown by the target of an invocation. Source: mscorlib Method: System.Object _InvokeMethodFast(System.Object, System.Object[], System.SignatureStruct ByRef, System.Reflection.MethodAttributes, System.RuntimeTypeHandle) Stack Trace: at System.RuntimeMethodHandle._InvokeMethodFast(Object target, Object[] arguments, SignatureStruct& sig, MethodAttributes methodAttributes, RuntimeTypeHandle typeOwner) at System.RuntimeMethodHandle.InvokeMethodFast(Object target, Object[] arguments, Signature sig, MethodAttributes methodAttributes, RuntimeTypeHandle typeOwner) at System.Reflection.RuntimeMethodInfo.Invoke(Object obj, BindingFlags invokeAttr, Binder binder, Object[] parameters, CultureInfo culture, Boolean skipVisibilityChecks) at System.Reflection.RuntimeMethodInfo.Invoke(Object obj, BindingFlags invokeAttr, Binder binder, Object[] parameters, CultureInfo culture) at System.Reflection.MethodBase.Invoke(Object obj, Object[] parameters) at System.Web.Handlers.ScriptResourceHandler.DecryptString(String s) at System.Web.Handlers.ScriptResourceHandler.DecryptParameter(NameValueCollection queryString) at System.Web.Handlers.ScriptResourceHandler.ProcessRequest(HttpContext context) at System.Web.Handlers.ScriptResourceHandler.System.Web.IHttpHandler.ProcessRequest(HttpContext context) at System.Web.HttpApplication.CallHandlerExecutionStep.System.Web.HttpApplication.IExecutionStep.Execute() at System.Web.HttpApplication.ExecuteStep(IExecutionStep step, Boolean& completedSynchronously) Inner Exception: System.Web.HttpException: Invalid viewstate. at System.Web.UI.Page.DecryptStringWithIV(String s, IVType ivType) at System.Web.UI.Page.DecryptString(String s) User IP: 74.34.62.187 BaseMessage : Exception genereated on Monday, January 26, 2009, at 2:20 AM Page location: /ScriptResource.axd?d=y9_dUwBeGqLlRpT5Dml1zhoQvfa7NKdj69EYuV771kzSsa5KOOXBfJZjk%20%20%20%20%20%20%20%20%20%20%20%20if%20(cat_gallery%20!= Requested Url : http://garmn.factoryoutletstore.com/ScriptResource.axd?d=y9_dUwBeGqLlRpT5Dml1zhoQvfa7NKdj69EYuV771kzSsa5KOOXBfJZjk if (cat_gallery != Message: Invalid viewstate. Source: System.Web Method: System.String DecryptStringWithIV(System.String, System.Web.Configuration.IVType) Stack Trace: at System.Web.UI.Page.DecryptStringWithIV(String s, IVType ivType) at System.Web.UI.Page.DecryptString(String s) User IP: 74.34.62.187 User Agent: Mozilla/4.0 (compatible; MSIE 8.0; Windows NT 6.0; Trident/4.0; SLCC1; .NET CLR 2.0.50727; .NET CLR 3.0.04506; .NET CLR 1.1.4322; Zune 3.0)
JamTech.. 5
我一直在分析我收集的数据,并得出了一些结论.我注意到我所获得的大部分错误都来自运行IE 8或Firefox 3的Windows Vista计算机.还有一些情况是Vista和IE 7.这可以解释为什么错误现在只是随着越来越多的人使用新操作系统成为一个问题.
Mozilla/4.0(兼容; MSIE 8.0; Windows NT 5.1; Trident/4.0; FunWebProducts; .NET CLR 1.1.4322; .NET CLR 2.0.50727)Mozilla/4.0(兼容; MSIE 8.0; Windows NT 5.1; Trident/4.0; GoogleT5; MSN优化; CA; MSN优化; CA)Mozilla/4.0(兼容; MSIE 8.0; Windows NT 6.0; WOW64; Trident/4.0; GTB5; SLCC1; .NET CLR 2.0.50727; .NET CLR 3.0.04506;媒体中心PC 5.0)
但无论如何,我想得到的结论是,基于这些信息,我开始研究浏览器如何处理java脚本,如果有任何新的东西可能导致这个问题,那就是当我发现一些有趣的东西时,我发现在w3School网站上有一篇关于html与xhtml差异的文章.
HTML和XHTML HTML 4和XHTML之间的差异与脚本内部的内容不同:
在HTML 4中,内容类型声明为CDATA,这意味着不会解析实体.在XHTML中,内容类型声明为(#PCDATA),这意味着将解析实体.这意味着在XHTML中,应编码所有特殊字符或将所有内容包装在CDATA部分中.
要确保脚本在XHTML文档中正确解析,请使用以下语法:
所以我立即查看了我的代码,我发现在我的一些页面上缺少DOCTYPE指令导致问题的同一个.我还注意到,在使用.NET注册客户端脚本例程输出JavaScript的地方,它将使用CDATA属性包装脚本标记的内部内容,而在页面上写入常规JavaScript时,没有使用CDATA.例如
函数RunMe(){}我不是浏览器如何渲染或解析html返回的专家,但我坚信它与上面的情况有关,因为脚本资源请求中的Url参数一旦崩溃,总是包含在它下面的脚本标记之间的代码.有时甚至可以在那里找到html样式表代码.例如
http://braun.factoryoutletstore.com/ScriptResource.axd?d=70kBR-jPBTx9R89FxObjhipHPS9CMlta5W6ZZiqkaa5zNOXUU4DtsY8V_8function runSearchForField(eventObj,id){if((eventObj.which == 13)||(eventObj.keyCode == 13)){var cat_gallery = getParam('gallery'); var cat = getParam('cat')var searchTerm = escape(document.getElementById(id).value); //必须使用escape()函数来urlencode搜索词以避免'&'和'='符号的问题var url; if(cat_
http://braun.factoryoutletstore.com/ScriptResource.axd?d=9vS7Hk65j_0hD8to_aPDj
现在我在想的是,因为我没有在页面中指定任何DOCTYPE浏览器可能试图根据其接收的数据进行推断然后它最终搞乱,因为有时候有CDATA而且有时候没有CDATA出现在页面中.我不知道这是否是一个可靠的假设原因,因为他们认为假设是危险的.如果有人可以对我的理论有所了解,并告诉我浏览器是否正在解析xhtml与旧版本不同,或者即使它们有任何类似的情况.
我一直在分析我收集的数据,并得出了一些结论.我注意到我所获得的大部分错误都来自运行IE 8或Firefox 3的Windows Vista计算机.还有一些情况是Vista和IE 7.这可以解释为什么错误现在只是随着越来越多的人使用新操作系统成为一个问题.
Mozilla/4.0(兼容; MSIE 8.0; Windows NT 5.1; Trident/4.0; FunWebProducts; .NET CLR 1.1.4322; .NET CLR 2.0.50727)Mozilla/4.0(兼容; MSIE 8.0; Windows NT 5.1; Trident/4.0; GoogleT5; MSN优化; CA; MSN优化; CA)Mozilla/4.0(兼容; MSIE 8.0; Windows NT 6.0; WOW64; Trident/4.0; GTB5; SLCC1; .NET CLR 2.0.50727; .NET CLR 3.0.04506;媒体中心PC 5.0)
但无论如何,我想得到的结论是,基于这些信息,我开始研究浏览器如何处理java脚本,如果有任何新的东西可能导致这个问题,那就是当我发现一些有趣的东西时,我发现在w3School网站上有一篇关于html与xhtml差异的文章.
HTML和XHTML HTML 4和XHTML之间的差异与脚本内部的内容不同:
在HTML 4中,内容类型声明为CDATA,这意味着不会解析实体.在XHTML中,内容类型声明为(#PCDATA),这意味着将解析实体.这意味着在XHTML中,应编码所有特殊字符或将所有内容包装在CDATA部分中.
要确保脚本在XHTML文档中正确解析,请使用以下语法:
所以我立即查看了我的代码,我发现在我的一些页面上缺少DOCTYPE指令导致问题的同一个.我还注意到,在使用.NET注册客户端脚本例程输出JavaScript的地方,它将使用CDATA属性包装脚本标记的内部内容,而在页面上写入常规JavaScript时,没有使用CDATA.例如
函数RunMe(){}我不是浏览器如何渲染或解析html返回的专家,但我坚信它与上面的情况有关,因为脚本资源请求中的Url参数一旦崩溃,总是包含在它下面的脚本标记之间的代码.有时甚至可以在那里找到html样式表代码.例如
http://braun.factoryoutletstore.com/ScriptResource.axd?d=70kBR-jPBTx9R89FxObjhipHPS9CMlta5W6ZZiqkaa5zNOXUU4DtsY8V_8function runSearchForField(eventObj,id){if((eventObj.which == 13)||(eventObj.keyCode == 13)){var cat_gallery = getParam('gallery'); var cat = getParam('cat')var searchTerm = escape(document.getElementById(id).value); //必须使用escape()函数来urlencode搜索词以避免'&'和'='符号的问题var url; if(cat_
http://braun.factoryoutletstore.com/ScriptResource.axd?d=9vS7Hk65j_0hD8to_aPDj
现在我在想的是,因为我没有在页面中指定任何DOCTYPE浏览器可能试图根据其接收的数据进行推断然后它最终搞乱,因为有时候有CDATA而且有时候没有CDATA出现在页面中.我不知道这是否是一个可靠的假设原因,因为他们认为假设是危险的.如果有人可以对我的理论有所了解,并告诉我浏览器是否正在解析xhtml与旧版本不同,或者即使它们有任何类似的情况.