zoukankan      html  css  js  c++  java
  • .Net 1.1 sp1 没有安装导致的MagicAjax无法正常运行

    今天尝试了一下agicAjax,碰上了一些奇怪问题,经过反复尝试,总算解决。

    问题是这样的,先从官方网站下载MagicAjax for .Net1.1 release 0.3.0 版,在本机解压,导入vs2003,写一个简单的例子,访问本机的web,没有任何问题。

    但是当把程序拷贝到服务器上后,问题出现了,ajax表现异常,似乎总是在初始状态和最后状态之间变化,也就是,好像程序无法保存中间状态。

    打开MagicAjax 的 Trace功能,截取到的Trace信息如下

    Ajax Call invoked at 11:30:07
    Page Store Mode: NoStore
    Form Data sent to server (372 characters):
    ------------------------------

    __EVENTTARGET=ddl
    __EVENTARGUMENT=
    __AJAXCALL=true
    __CONTROL_FINGERPRINTS_AjaxPanel1=C11EB92C;ddl#7EBA2C8E;txt#C13D366C
    __MAGICAJAX_SCRIPT_FINGERPRINTS=9F6D981;F24DF458;1A6D8953;C44C875E
    __VIEWSTATE=dDwtOTQwMzA0NjQ4O3Q8O2w8aTwxPjs%2bO2w8dDw7bDxpPDE%2bOz47bDx0PDtsPGk8MT47PjtsPHQ8dDw7O2w8aTwwPjs%2bPjs7Pjs%2bPjs%2bPjs%2bPjs%2bFXv9KvziPMm6c5iUDTQz7gMm3nk%3d
    ddl=
    你是?????
    txt=
    ------------------------------
    Waiting response from server.....
    Server responsed at 11:30:08
    Javascript code received from server (54 characters):
    ------------------------------

    AJAXCbo.SetField("txt","
    你是?????");
    'AJAX_LOADING_OK';
    ------------------------------ 

    然后查看本机的Trace

    Ajax Call invoked at 11:39:32
    Page Store Mode: NoStore
    Form Data sent to server (383 characters):
    ------------------------------

    __EVENTTARGET=ddl
    __EVENTARGUMENT=
    __AJAXCALL=true
    __CONTROL_FINGERPRINTS_AjaxPanel1=C11EB92C;ddl#7EBA2C8E;txt#C13D366C
    __MAGICAJAX_SCRIPT_FINGERPRINTS=9F6D981;F24DF458;1A6D8953;C44C875E
    __VIEWSTATE=dDwyNzExNjc2MDg7dDw7bDxpPDE%2bOz47bDx0PDtsPGk8MT47PjtsPHQ8O2w8aTwxPjs%2bO2w8dDx0PDs7bDxpPDA%2bOz4%2bOzs%2bOz4%2bOz4%2bOz4%2bOz5kNKUTA5tOdWeESfkt7VquRxuIpA%3d%3d
    ddl=
    你是?????
    txt=
    我是XXXXX
    ------------------------------
    Waiting response from server.....
    Server responsed at 11:39:32
    Javascript code received from server (231 characters):
    ------------------------------

    AJAXCbo.SetField("txt","
    你是?????");
    AJAXCbo.SetField("__VIEWSTATE","dDwyNzExNjc2MDg7dDw7bDxpPDE+Oz47bDx0PDtsPGk8MT47PjtsPHQ8O2w8aTwxPjs+O2w8dDx0PDs7bDxpPDE+Oz4+Ozs+Oz4+Oz4+Oz4+Oz6ZjNOz98QT9U5wHt4K2BaaKhD92g==");
    'AJAX_LOADING_OK';
    ------------------------------


     

    问题出来了,正常的情况下,最后会有一个 AJAXCbo.SetField("__VIEWSTATE", "......")操作,而在有问题的服务器上,是没有的,而且,从返回的代码量来看,也比正常的要少很多,从上面2个Trace结果来看,正常的返回了 383 characters,而有问题的只返回了 54 characters,看来是少了返回的 VIEWSTATE,导致 ajax运行异常。

    但是为什么会出现这样的情况,百思不得其解,期间还另外找了几台服务器,但是问题是一样的,难道就我的机器可以运行? 应该不是!

    最后,想到是不是因为机器补丁打的不一致导致了这个问题,一查添加删除程序,发现了我的本机比服务器多打了一个Microsoft .Net Framework 1.1 Hotfix (KB886903) 的补丁。

    这好办,到ms网站down下来,安装,恩?提示需要先安装 .net 1.1 sp1,原来还有这个东西没装,没问题,再down一个sp1,安装……再测试,一切ok,原来是它捣的鬼。

    在网上搜了一下,好像没发现这个问题,到MagicAjax的论坛上看了一下,似乎也没人碰到这个问题,因此把它记录下来,希望对大家有所帮助。

    ps 在.Net 2.0上没有发现同样的问题,看来只限于.Net 1.1。 

  • 相关阅读:
    BZOJ 2212/BZOJ 3702
    BZOJ 4761 Cow Navigation
    BZOJ 3209 花神的数论题
    BZOJ 4760 Hoof, Paper, Scissors
    BZOJ 3620 似乎在梦中见过的样子
    BZOJ 3940 Censoring
    BZOJ 3942 Censoring
    BZOJ 3571 画框
    BZOJ 1937 最小生成树
    BZOJ 1058 报表统计
  • 原文地址:https://www.cnblogs.com/oop/p/505071.html
Copyright © 2011-2022 走看看