• .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。 

  • 相关阅读:
    MySQL官方文档-二级索引覆盖主键索引
    windows server 2008/win7 远程控制
    博客园美化日记
    MarkDown 中使用 LaTeX 数学式
    DOS命令和bat脚本
    数据链路层
    网络安全
    运输层安全协议SSL
    DNS/域名
    停止等待协议
  • 原文地址:https://www.cnblogs.com/oop/p/505071.html
Copyright © 2020-2023  润新知