晨鸟科技

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

IIS7.5 AjaxMethod 未定义解决办法

[复制链接]
跳转到指定楼层
楼主
发表于 2010-9-13 17:54:02 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
首先,交代下背景:8 c& s$ l2 b* r0 I# M% E' G
最近调试作业智能批改系统,其中在作业批改页用到了一点 ajax 技术(教师修改主观类题目分数需局部刷新),今天测试发现程序上传到windows server 2008 r2 的服务器上出现“AjaxMethod 未定义”错误,如下图:0 \; L6 D2 g5 [6 o1 k
- N$ j9 T6 F5 \2 s

. x7 P3 c) y( d/ e$ [$ Z1 w网上未找出此问题解决方法,纠结半天,最后修改服务器配置,问题解决...
& f, ?( `; \. Z) h9 @5 d$ H5 ]+ {' ~& g1 y1 Q# Z* m
下面总结解决方法:' P( O0 h" X6 Z% V& N; v
先看页面js代码
  1. <script language="javascript">& j& u. q! g$ D  M0 d. H6 y
  2.     var questionID;! I/ q1 S- ~$ E: [5 ]5 z, T
  3.     function $(ID)) f* @! y8 W+ T# X+ v+ n
  4.         {
    5 e; _, }1 W1 y0 I
  5.             if(document.all)9 D" Z/ W0 [9 T( ~0 z5 G
  6.                 return document.all[ID];! f: A0 \  p# G. U
  7.             else if(document.getElementById)
    2 H8 I; a, [2 y4 J. p
  8.                 return document.getElementById(ID);% W; B& R# r+ n
  9.             else: W: b  L1 ?9 c/ n
  10.                 return null;- G: M6 ~3 K# ^: H( A4 b. E
  11.         }) l& }0 K  F; n/ _% V( A! T6 o

  12. ! E* ]) D7 p3 d+ x% B
  13.     function callback_test1(res)
    $ \/ a- R* J3 {* `
  14.     {, l$ B6 {- E/ f. Z* ?, \) Z+ R
  15.         if(res.value =="-1")
    + I- a5 g3 J2 `; i2 y
  16.         {
    ( f1 X& H3 X7 ?
  17.             alert("必须输入数字");2 G0 N0 J% ?! t/ F9 p2 M1 ]
  18.         }
    # x) p) N4 u% j* C5 B
  19.         else if(res.value == "-2")
    + }5 g5 h" h! y) b2 m0 V5 }* g
  20.         {
    . V. ]6 f4 `* C
  21.             alert("得分不能超过题目标准得分");9 }4 _6 g. q5 I
  22.         }
    0 [  u. a- R/ m7 j9 S% L
  23.         else{/ l2 y1 S  o( Q) \7 K1 O
  24.             var array  = res.value.split(",");3 V$ y5 r' E6 o8 Y
  25.             document.getElementById("mark"+questionID).innerHTML = array[0];7 A4 I  t+ }$ X% g
  26.             document.getElementById('totalMark').innerHTML = array[1];3 z. e) ?2 ~8 r" `- G+ c0 t6 U
  27.             alert("修改成功!");1 x( k+ h8 E% T$ M9 @7 g2 z( D$ }$ D
  28.         }
    ; l. E  [+ Y$ e% C: G* x; I
  29.             8 T2 W2 I; C; d% i7 |' D  u
  30.     }' w0 C7 C! ?, U' I3 R6 H" X
  31.     function totalMark(spiID)
    7 f9 S  v* O) i. _
  32.     {
    : X$ ^% `% J) h3 `- c. w
  33.         AjaxMethod.TotalMark(spiID,callback_totalMark);
    7 ~/ O0 @# m: W# D' z) k9 T( n0 s! E
  34.     }1 a7 [: N5 b# H
  35.     function editMark(btnID). L7 O, y; q+ }
  36.     {% S! \) K2 F% M! D1 Q
  37.         var txtID = "txt"+btnID.substring(3,btnID.length);
    + N, L; E# }: r, b: n+ j- I
  38. / ]: u* o$ D( N8 {) F& F" n' U& z
  39.         var studentPaperID = document.all.hiddenSpi.value;
    2 v3 ]$ W3 ~$ U3 |
  40.         questionID = btnID.substring(3,btnID.length);
    , I4 M  n% E6 x
  41.            
    " \" f) K5 d) _# U
  42.         var mark = parseInt($(txtID).value);1 o1 y& m/ Z9 `7 C- {; r* u/ M) P
  43.        AjaxMethod.EditDiscussMark(studentPaperID,questionID,mark,callback_test1);        * U7 H& K+ E3 V6 ~& f
  44.     }) O2 j9 ^; h4 J
  45. </script>
复制代码
1.页面.cs文件中的Page_Load须包含
  1.                         Ajax.Utility.RegisterTypeForAjax(typeof(Ajax.AjaxMethod));
    6 @0 u8 p) K# f' T
复制代码
2.AjaxMethod类中添加
  1.         [Ajax.AjaxMethod(Ajax.HttpSessionStateRequirement.ReadWrite)]
    2 {3 P3 P- p; W% W  f: s
复制代码
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"/>% B' c# g" R  {
  2. & F9 q8 x) u' G6 y* \# _
  3.       <add name="AjaxMethod" type="Ajax.PageHandlerFactory, Ajax" verb="POST,GET" path="ajax/*.ashx" />  //IIS版本为7.0以上添加* x) u; i: [( E" m
复制代码
5.打开IIS,点击“应用程序池”——右键“高级设置”——启用32位应用程序“True”
& T0 \5 B4 e9 F3 }
) g- [0 H2 T% {, H4 i" m* P6 T2 B! g" Q" v
问题解决

本帖子中包含更多资源

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

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

本版积分规则

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

GMT+8, 2025-10-29 21:28 , Processed in 6.068947 second(s), 9 queries , Wincache On.

Powered by Discuz! X3.2

© 2001-2013 Comsenz Inc.

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