晨鸟科技

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

IIS7.5 AjaxMethod 未定义解决办法

[复制链接]
跳转到指定楼层
楼主
发表于 2010-9-13 17:54:02 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
首先,交代下背景:
( B" \" K- b+ n/ O1 {' ]. e/ |最近调试作业智能批改系统,其中在作业批改页用到了一点 ajax 技术(教师修改主观类题目分数需局部刷新),今天测试发现程序上传到windows server 2008 r2 的服务器上出现“AjaxMethod 未定义”错误,如下图:: v9 K- ~5 Z3 E  A# P7 U
; k, M% ?4 S& r; o" g# a
. e6 G& o/ X. |7 C
网上未找出此问题解决方法,纠结半天,最后修改服务器配置,问题解决...7 q3 S4 V2 X! p5 u" o1 t# S: \
) V- _1 g. k4 |$ Z& {
下面总结解决方法:, O% G7 X6 t: t9 \2 A4 K# {
先看页面js代码
  1. <script language="javascript">! p, ~" a% z2 G3 p2 _, G7 }2 O
  2.     var questionID;& e  D9 v6 g* O0 ]
  3.     function $(ID): ^' {7 O7 o, B! T( k3 l# w* S  l1 N
  4.         {
    & }' T/ T8 y# C  x( u/ a
  5.             if(document.all)
    0 G. y3 ^1 w9 \8 z
  6.                 return document.all[ID];9 P5 j) q: M. V
  7.             else if(document.getElementById)
      A3 f$ D* j* T2 R. _( j
  8.                 return document.getElementById(ID);
    ) @7 j& G$ p; ]" M, W
  9.             else
    + P2 X- y- \  p+ ]! [
  10.                 return null;6 K4 m. X' }* Y2 h
  11.         }
    & F4 C. S$ Y) z
  12. - C( O# V) C3 B: k9 \
  13.     function callback_test1(res)
    9 n" k$ \& D  l# i0 ^7 c
  14.     {
    / p6 P' v# }8 p# V5 j% S, ?
  15.         if(res.value =="-1")" D, E9 ~) t* \+ e1 k1 F4 U  V1 w
  16.         {, M9 Z+ ]3 ^9 E3 [) R( m7 t
  17.             alert("必须输入数字");0 x) p9 h: y: F, E
  18.         }+ k; W6 M0 O, X
  19.         else if(res.value == "-2")
    3 D$ K1 C% g0 Y& @* y
  20.         {
    3 o9 Y- o. r! f  @" r4 R
  21.             alert("得分不能超过题目标准得分");9 @0 n" S  U! U
  22.         }
    " V; \! m1 _+ J# }! _
  23.         else{: B/ G$ }2 s/ p6 B" ]7 h; S6 i
  24.             var array  = res.value.split(",");
    & A" ]9 f" f2 w2 W& E% N, w$ R
  25.             document.getElementById("mark"+questionID).innerHTML = array[0];% V* B$ J3 J! H4 B2 w: s% X- u* `: e
  26.             document.getElementById('totalMark').innerHTML = array[1];
    . ?/ M6 Q0 q2 V2 v8 O$ s  G) |
  27.             alert("修改成功!");# ]2 y, K( b; e7 D) l2 ]
  28.         }; X& ?# y4 Q, h) Y. J! n, z' K
  29.            
    / j- ]9 H: m& G/ v' ?
  30.     }
    ; g  N6 Y5 t! T: r! O
  31.     function totalMark(spiID)
    $ y$ L- x# k' @/ S
  32.     {
    * ]# z+ I% v* e3 y4 X
  33.         AjaxMethod.TotalMark(spiID,callback_totalMark);% j4 O2 M- D3 q, j- D
  34.     }+ B& T0 j* I* y! l$ i
  35.     function editMark(btnID)
    9 r! f. T0 i" G) e  }; p6 |0 s( W$ O
  36.     {5 U! q, s0 q4 H$ a4 F3 E1 M' x' A
  37.         var txtID = "txt"+btnID.substring(3,btnID.length);
    ( F. v) S9 ~- ^
  38. 4 X# h! l+ `4 f9 x$ @
  39.         var studentPaperID = document.all.hiddenSpi.value;
    : `  ^2 {- O0 z
  40.         questionID = btnID.substring(3,btnID.length);
    0 W& Z5 _. w" t" f
  41.            
    5 @1 e6 `$ q3 S' q# X
  42.         var mark = parseInt($(txtID).value);) \5 r& _# s% u: d' W
  43.        AjaxMethod.EditDiscussMark(studentPaperID,questionID,mark,callback_test1);        ( ?4 l0 j% q3 N. Z6 m$ f' n: x
  44.     }
    4 l) Q8 n0 V4 h1 E
  45. </script>
复制代码
1.页面.cs文件中的Page_Load须包含
  1.                         Ajax.Utility.RegisterTypeForAjax(typeof(Ajax.AjaxMethod));" \8 K& {  s* t- y
复制代码
2.AjaxMethod类中添加
  1.         [Ajax.AjaxMethod(Ajax.HttpSessionStateRequirement.ReadWrite)]
    , A" X: \; @6 Y, Z9 k! 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"/>" N8 O  F0 O# M  o# |( v1 Z
  2. ) k7 D& N' w( B/ C; O* v  H
  3.       <add name="AjaxMethod" type="Ajax.PageHandlerFactory, Ajax" verb="POST,GET" path="ajax/*.ashx" />  //IIS版本为7.0以上添加! J5 M1 P2 Z0 ~  d! U3 g
复制代码
5.打开IIS,点击“应用程序池”——右键“高级设置”——启用32位应用程序“True”
7 f+ H- Z, n" h! {  w8 Z' l: M; g7 b2 x7 Z9 G+ v0 V
0 ^0 j  h( E; k9 L0 G
问题解决

本帖子中包含更多资源

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

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

本版积分规则

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

GMT+8, 2025-6-5 18:27 , Processed in 6.065663 second(s), 8 queries , Wincache On.

Powered by Discuz! X3.2

© 2001-2013 Comsenz Inc.

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