晨鸟科技

标题: IIS7.5 AjaxMethod 未定义解决办法 [打印本页]

作者: xueshuai    时间: 2010-9-13 17:54
标题: IIS7.5 AjaxMethod 未定义解决办法
首先,交代下背景:
; O! E. D; n8 f. q; F" p* l6 a最近调试作业智能批改系统,其中在作业批改页用到了一点 ajax 技术(教师修改主观类题目分数需局部刷新),今天测试发现程序上传到windows server 2008 r2 的服务器上出现“AjaxMethod 未定义”错误,如下图:8 t- @: C6 s  _# f$ A. @
[attach]127[/attach]7 B) @0 e' |+ ^( k3 b" r7 F
: X" j3 |# y" `
网上未找出此问题解决方法,纠结半天,最后修改服务器配置,问题解决...
/ M5 |8 k% R& M0 ~
& C8 y$ P( p8 u' m9 K  D$ c8 m' @下面总结解决方法:
, A( Z/ h0 _6 y+ J3 I: f, c: p; b先看页面js代码
  1. <script language="javascript">: f. |0 P& J6 k) S0 H
  2.     var questionID;
    " e' f# F) }( g1 q
  3.     function $(ID)+ W% [! H; h' v3 k
  4.         {
    ! f0 e- i, {: @9 N0 v
  5.             if(document.all)
    5 z: V( B: X1 z
  6.                 return document.all[ID];
    7 Z* q+ @/ }' S% L
  7.             else if(document.getElementById)
    2 ~8 U5 Q% x. K2 V- F& F
  8.                 return document.getElementById(ID);
    1 V# q, d: j% c  G: e  O# O2 D  U) E
  9.             else
    % z$ f& y# |( z# w" M. o! V, l
  10.                 return null;
    ( e3 w. X. O9 R' @' p, d- A
  11.         }
    " Y# r! A4 |0 L9 S, B6 w3 _
  12. 5 }4 p, o7 w7 j% K8 r
  13.     function callback_test1(res)9 L$ R% W" k& C. {! M7 R
  14.     {
      T: o. |& H- e5 q4 T2 d- j0 |
  15.         if(res.value =="-1")
    + P0 |6 e' r2 J/ ?  c* d$ d
  16.         {8 ~" k1 N* |- [) l/ E& `
  17.             alert("必须输入数字");4 [) L; c( k' t/ o7 T
  18.         }
    3 {; @  {9 Z% ~
  19.         else if(res.value == "-2")
    ( J, z! I+ M9 |9 F  _0 t
  20.         {
    9 e+ w, A! K5 d# `9 ]6 y. ~
  21.             alert("得分不能超过题目标准得分");
    & @/ K/ L8 w: J; {
  22.         }
    4 |; k/ s( }" b2 K  t1 b; G
  23.         else{* X8 c/ _; s3 H. Q' w7 w* V
  24.             var array  = res.value.split(",");
    % m$ v: i5 H9 b# L/ ~& Y8 N
  25.             document.getElementById("mark"+questionID).innerHTML = array[0];
    / D& ^! m! |& v4 ^" ^) r1 Z
  26.             document.getElementById('totalMark').innerHTML = array[1];
    $ w2 d  q( m, B! ]1 `
  27.             alert("修改成功!");5 v: z% z/ W5 H+ m$ J/ f( Y3 m5 Z8 ?
  28.         }. H: F8 i* C+ X) n
  29.            
    0 Y$ t6 t4 I4 M- L4 P0 `
  30.     }
    * Q) A+ ~& x8 _! [1 {
  31.     function totalMark(spiID)7 j- w, K: V) s% o& o7 d" h
  32.     {& G2 R5 l3 T9 q  ^, G% c2 q
  33.         AjaxMethod.TotalMark(spiID,callback_totalMark);
    0 \$ v5 z: J) U7 V! Q
  34.     }1 g5 v2 o0 u3 {6 A
  35.     function editMark(btnID)
    + |, K9 x$ q% u) g& d2 V
  36.     {
    1 U4 z) n0 A7 D5 c' T  P2 h
  37.         var txtID = "txt"+btnID.substring(3,btnID.length);
    2 p) W! z6 y- I$ y4 o' M

  38. 6 ^- q; X3 q+ J7 t: ^' S7 Y/ ?
  39.         var studentPaperID = document.all.hiddenSpi.value;
    6 I( o/ v) R0 d% k0 O& O
  40.         questionID = btnID.substring(3,btnID.length);7 T, {# r& H3 ^, F1 F) x% B2 U
  41.             - n6 V2 F3 r4 y
  42.         var mark = parseInt($(txtID).value);/ N- z3 D7 D5 Q8 ^
  43.        AjaxMethod.EditDiscussMark(studentPaperID,questionID,mark,callback_test1);        * F1 h! z4 q5 c* s4 |( N( z/ X
  44.     }) O- d4 Q. @8 x) g. Q6 U
  45. </script>
复制代码
1.页面.cs文件中的Page_Load须包含
  1.                         Ajax.Utility.RegisterTypeForAjax(typeof(Ajax.AjaxMethod));
    . T- h1 y' d% t  T- ~0 ]; x
复制代码
2.AjaxMethod类中添加
  1.         [Ajax.AjaxMethod(Ajax.HttpSessionStateRequirement.ReadWrite)]
    1 m8 p+ U6 h  z  l- w: ^0 K
复制代码
3.Global.asax的Application_Start方法添加
  1. Ajax.Utility.HandlerPath = "csharpwrapper";
复制代码
4.web.config中的<httpHandlers>和<handlers>分别添加
  1.                         <add verb="POST,GET" path="csharpwrapper/*.ashx" type="Ajax.PageHandlerFactory, Ajax"/>7 A1 t6 J- g6 X2 ^

  2. 1 h5 L- ?9 z1 L" k' C
  3.       <add name="AjaxMethod" type="Ajax.PageHandlerFactory, Ajax" verb="POST,GET" path="ajax/*.ashx" />  //IIS版本为7.0以上添加
    % p" W# a* J9 [3 s% X3 g3 o
复制代码
5.打开IIS,点击“应用程序池”——右键“高级设置”——启用32位应用程序“True”  C  Z6 I! W& a0 d2 ~- d$ g
[attach]128[/attach], M0 t6 O4 h, A% U9 s

; Z* X1 f/ u, N9 L# x; A问题解决




欢迎光临 晨鸟科技 (http://www.chenniao.com/cprofessor/) Powered by Discuz! X3.2