晨鸟科技

 找回密码
 注册
搜索
查看: 12067|回复: 0
打印 上一主题 下一主题

IIS7.5 AjaxMethod 未定义解决办法

[复制链接]
跳转到指定楼层
楼主
发表于 2010-9-13 17:54:02 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
首先,交代下背景:; p% t/ S1 M! ~; }) g( n( ~* a
最近调试作业智能批改系统,其中在作业批改页用到了一点 ajax 技术(教师修改主观类题目分数需局部刷新),今天测试发现程序上传到windows server 2008 r2 的服务器上出现“AjaxMethod 未定义”错误,如下图:; A; v; U/ |% _0 J7 u# Z9 R) ~

$ q) h4 n6 E4 @0 ^" w: Z. k# D) h; m; \  Y6 b/ [1 J1 U
网上未找出此问题解决方法,纠结半天,最后修改服务器配置,问题解决...
- ?4 D7 Q( q* d0 D  ]
+ V5 z' A  o0 A) {. s# f下面总结解决方法:, P4 W+ L& d' ^, Q5 Z8 u
先看页面js代码
  1. <script language="javascript">( L4 O. w+ E6 E' h9 q0 h2 {
  2.     var questionID;1 p2 N6 o7 A) A4 L
  3.     function $(ID)+ [5 D8 Z: L/ Y
  4.         {
    ( R, i0 J. L! X1 }8 ^% d7 z
  5.             if(document.all)
    ! B0 J( p0 X1 G- t$ ~5 E8 ~
  6.                 return document.all[ID];. Z# n- E6 }# _  u, U/ U
  7.             else if(document.getElementById)
    0 v5 O2 P8 w( C! p) }$ [9 A
  8.                 return document.getElementById(ID);, J  q. P! n2 q
  9.             else/ j6 a1 ^& p* L
  10.                 return null;) Y% b. j9 L  t+ W7 H; D2 U# ^* f3 L/ E
  11.         }
    " a/ N: ?! _/ _* [3 X9 ^

  12. 4 N5 w' |7 W. O2 D, @) F2 I$ l
  13.     function callback_test1(res)
    ! f  o3 R2 M2 R; R1 d
  14.     {9 n6 S  o  x, X
  15.         if(res.value =="-1")3 c2 e8 y. N! E
  16.         {- r; e2 g- p% W: ^+ s9 B+ P
  17.             alert("必须输入数字");
    & b  G1 C" }7 x; o, A# N
  18.         }
    2 {5 W4 x9 O# {6 v
  19.         else if(res.value == "-2")6 i- y0 ~  I6 a$ `1 }
  20.         {
    ; n/ l. i2 d6 D* Q2 Q( T4 c$ J
  21.             alert("得分不能超过题目标准得分");' b$ P8 q1 H! a, Z9 ?
  22.         }" |) `2 d7 \* b1 k$ _$ ~7 |
  23.         else{
    4 s$ E2 Z/ U, H. C9 l
  24.             var array  = res.value.split(",");
    7 {8 b- y( j9 e2 O- u# k3 R
  25.             document.getElementById("mark"+questionID).innerHTML = array[0];
    8 f: u: M; R- c
  26.             document.getElementById('totalMark').innerHTML = array[1];& `1 @" r; w* ^
  27.             alert("修改成功!");
    ! W8 c' l  M4 Q
  28.         }
    8 Q8 u9 t. b; a* b
  29.            
    - }9 k$ E9 H1 x6 F3 w5 I6 \. S" o
  30.     }9 W' L2 f8 q4 H' m
  31.     function totalMark(spiID)9 m, x! I- `* U. _
  32.     {
    7 A3 E# Y8 u0 i, A1 W- W
  33.         AjaxMethod.TotalMark(spiID,callback_totalMark);+ M7 G; X2 v9 s2 r5 c
  34.     }7 I# a# \& z+ d
  35.     function editMark(btnID)1 n6 N- S7 e( u) b+ Y2 ?8 O6 S
  36.     {
    , V8 T* W0 M! W$ I6 S4 {
  37.         var txtID = "txt"+btnID.substring(3,btnID.length);
    ' D0 K& V( \; F8 e* g9 T; V% D* `

  38. - @- v" o0 g' o+ g
  39.         var studentPaperID = document.all.hiddenSpi.value;  h2 h& j3 x+ W5 L
  40.         questionID = btnID.substring(3,btnID.length);
    & `) f% a: r! t9 Q2 I
  41.             0 @1 U9 ~- L/ g
  42.         var mark = parseInt($(txtID).value);9 o3 H% A% C8 [
  43.        AjaxMethod.EditDiscussMark(studentPaperID,questionID,mark,callback_test1);        ( r" ^: i( P$ U* \7 A* f) q, ]
  44.     }) S4 C7 J, V; ~' ~; C
  45. </script>
复制代码
1.页面.cs文件中的Page_Load须包含
  1.                         Ajax.Utility.RegisterTypeForAjax(typeof(Ajax.AjaxMethod));+ F( b: {9 T4 L( P4 J: w2 K; d
复制代码
2.AjaxMethod类中添加
  1.         [Ajax.AjaxMethod(Ajax.HttpSessionStateRequirement.ReadWrite)]
    + s7 }/ L( [) c. g
复制代码
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"/>. [+ G- I- Q  N

  2. 7 [  r; }! x4 M$ R
  3.       <add name="AjaxMethod" type="Ajax.PageHandlerFactory, Ajax" verb="POST,GET" path="ajax/*.ashx" />  //IIS版本为7.0以上添加
    $ U9 P, Q# T5 J( r
复制代码
5.打开IIS,点击“应用程序池”——右键“高级设置”——启用32位应用程序“True”
, U  y3 i8 z3 m9 p) i9 [/ r
" ~. V: W& f/ D& I4 I* ^" k/ [6 D: a) z" t2 R. I1 X
问题解决

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有帐号?注册

x
您需要登录后才可以回帖 登录 | 注册

本版积分规则

小黑屋|手机版|晨鸟科技 ( 沪ICP备09012675号 )

GMT+8, 2025-8-13 22:09 , Processed in 6.069569 second(s), 9 queries , Wincache On.

Powered by Discuz! X3.2

© 2001-2013 Comsenz Inc.

快速回复 返回顶部 返回列表