有关 WebUIValidation.js 的一个诡异问题,求大神出手解救

2015-09-18 18:29:06 +08:00
 lonelygo

背景:
在做一个 Citrix 虚拟化项目问题,在虚拟化使用过程中有用户提出有应用系统在物理机中速度正常,在虚拟化环境中登陆需要几十秒,然后就安排工程师去跟踪排查问题,最后说原因定位到了“ WebUIValidation.js ”,看了一下,确实诡异,搞不明白,求助!!!

现象:
1 、在物理机中登录 http 抓包如下:

可以看到, assofflogin.aspx 之行后就开始加载图片了。
2 、在虚机中登陆,结果就变了,在 assofflogin.aspx 之后会执行 WebUIValidation.js ,这个 js 第一次加载 90%情况下会失败,持续时间 20 秒左右。之后会出现多种可能性:
1.1 、第一次失败后,反复尝试 3-5 次,一直失败,然后不执行 js ,直接开始加载图片;
1.2 、失败几次后,会成功执行 WebUIValidation.js 后,加载图片;
1.3 、极其个别的情况下 WebUIValidation.js 会一次执行通过;或者,与物理机情况一直,没有执行这个 js 。


可以确定的就是: WebUIValidation.js 导致了在虚拟化环境中登陆慢的问题。
最初怀疑是 WebUIValidation.js 在服务器中没有这个文件,但是在 IE 中用完整路径尝试后,是可以下载到这个 js 的,并不是 404 什么。
所以,不明白的是:
1 、为什么在物理机登陆不需要执行此 js ?
2 、为什么在虚拟化环境中登陆,会出现很多的可能性,当然 js 反复执行多次后还是没有回包的情况最多;
3 、此系统运维商找不到人,服务器在北京,现在的情况是,找不到运维的、开发的,也暂时没法接触到服务器(正在协调找人);
4 、用户的态度是:物理机正常,虚拟化环境有问题,那就是你虚拟化的问题,你们就要排查清楚😭

求高人指点,已经要崩溃了。

以下是与 WebUIValidation.js 有关的代码片段:

</HEAD>
    <body MS_POSITIONING="GridLayout" BGCOLOR="#ffffff" leftmargin="0" topmargin="0">
        <form name="index99" method="post" action="assofflogin.aspx" language="javascript" onsubmit="if (!ValidatorOnSubmit ()) return false;" id="index99">
<input type="hidden" name="__VIEWSTATE" value="dDwtMjEzNTk2MDUwODt0PDtsPGk8MT47PjtsPHQ8O2w8aTwxNT47PjtsPHQ8QDA8Ozs7Ozs7Ozs7Oz47Oz47Pj47Pj47bDxMb2dpbjs+Pn2zs1WO22R8mQ8wwaoOGEQS/SHk" />

<script language="javascript" type="text/javascript" src="/aspnet_client/system_web/1_1_4322/WebUIValidation.js"></script>


            <TABLE WIDTH="777" BORDER="0" CELLPADDING="0" CELLSPACING="0" align="center">
                <TR>
                    <TD colspan="3">
                        <table width="100%" border="0" cellspacing="0" cellpadding="0">
2377 次点击
所在节点    JavaScript
2 条回复
frozen2013
2015-09-19 00:19:12 +08:00
随手搜 WebUIValidation.js ,发现这东西跟.net 相关的

http://scottonwriting.net/sowblog/archive/2004/11/03/163009.aspx
The WebUIValidation.js file, as you know, contains client-side JavaScript functions for client-side validation. It is automatically injected into a page when:

The page contains one or more validation Web controls.
The page is being visited by an “ uplevel ” browser.

根据以上信息,这个东西是有条件加载的,我猜你遇到的问题是物理机上符合不加载的条件,虚拟环境符合加载条件但加载遇到困难。

最好还是问写这个服务的工程师吧。
lonelygo
2015-09-19 12:34:14 +08:00
@frozen2013 嗯,这个 js 看名字就应该是校验用途。
虚拟环境中如果连续刷新,会出现某一次不执行 js 的情况,也会出现 5 次执行不过去就丢弃不执行的情况。
大多数情况是,执行 2-3 次,收到回包,执行通过。
现在的难题在于:找不到写这个服务的码农了,运维的人都很难找到。
如果能接触到服务器,我倒是想尝试注释了这句话看看结果。

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/221819

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX