晨鸟科技

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

IIS7.5 AjaxMethod 未定义解决办法

[复制链接]
跳转到指定楼层
楼主
发表于 2010-9-13 17:54:02 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
首先,交代下背景:
3 H" A# O, S3 J$ r$ q最近调试作业智能批改系统,其中在作业批改页用到了一点 ajax 技术(教师修改主观类题目分数需局部刷新),今天测试发现程序上传到windows server 2008 r2 的服务器上出现“AjaxMethod 未定义”错误,如下图:
" i3 {6 S, i, E* |! e, w) t
9 Z! d7 ~4 Y# A  Q
! N- H$ K% x3 Q* l1 ~) ]5 s. o+ Q网上未找出此问题解决方法,纠结半天,最后修改服务器配置,问题解决...( L% Y+ C) s9 U/ T! e- }- A
# O/ h# H% M0 j  S
下面总结解决方法:+ K1 ^  N, g$ Z9 v$ {: N8 G
先看页面js代码
  1. <script language="javascript">1 B7 ?" l2 m9 O* e% O1 L
  2.     var questionID;
    5 \# ^# M8 ^1 q! y% {9 w
  3.     function $(ID)+ g  c3 \( y& ~9 u
  4.         {% m/ s; t, L: f, D+ r5 a
  5.             if(document.all)% U$ A1 w0 }! M/ _3 g3 Y
  6.                 return document.all[ID];3 x7 N7 `; }) e4 Z- c. G
  7.             else if(document.getElementById)
    ; C8 N$ q6 S& B+ X- E
  8.                 return document.getElementById(ID);! F' c5 T  H& V6 B
  9.             else
    & T" r, k( R$ N; {# E& T
  10.                 return null;. w) w9 D# {) N) @9 w
  11.         }
    & W# k, L' [7 y0 |- Q

  12. & i( Z0 [; j- ?6 k/ W
  13.     function callback_test1(res)5 R, C! B1 p" {- ^! W
  14.     {9 M8 T" U* F( q* s4 D- F; e
  15.         if(res.value =="-1"), X3 ]+ c8 K( p. H, W: x
  16.         {
    . X, y* Z$ T/ K( q& z/ ]
  17.             alert("必须输入数字");. w8 g  S2 ]+ ]& i
  18.         }* Z+ S) a5 w* O6 X
  19.         else if(res.value == "-2")
    3 x9 A& B- l8 |1 |4 u: t& |
  20.         {
    7 c, }& c; `1 u* m, C% a# ~
  21.             alert("得分不能超过题目标准得分");
    4 Y- P$ E6 e$ z8 L
  22.         }' ~8 X. S9 A3 e1 b9 P" ?
  23.         else{! V: {5 w* c- o7 x/ }
  24.             var array  = res.value.split(",");
    ' a  [* x; }/ g( }* m) u5 U
  25.             document.getElementById("mark"+questionID).innerHTML = array[0];
    5 K% z8 E7 k0 h) B. M
  26.             document.getElementById('totalMark').innerHTML = array[1];2 r- `# v" Z% D/ e, ~" S3 T
  27.             alert("修改成功!");, m% c6 [1 O! i2 N
  28.         }# m6 M. W# F6 [) q+ _# J
  29.             $ \% t1 H7 ~9 O, C: e+ t
  30.     }
    . z& L7 b3 C! ^5 Y. m
  31.     function totalMark(spiID)" Y, p$ g: A3 c3 k, z
  32.     {
    " V3 |, z, A4 I7 ?4 _# q
  33.         AjaxMethod.TotalMark(spiID,callback_totalMark);. w) j6 w# F: n3 R/ N  |. F5 }! t
  34.     }
    9 q5 X1 `$ B$ s0 u7 C0 W! Y
  35.     function editMark(btnID)7 v5 B! E/ c2 |! c, G
  36.     {: t- T6 Q7 Y5 [: \9 t$ J
  37.         var txtID = "txt"+btnID.substring(3,btnID.length);
    * x5 F7 k/ N, f

  38. ! |" m) o6 i$ H1 J. [
  39.         var studentPaperID = document.all.hiddenSpi.value;
    " U5 @+ N7 v# D$ u
  40.         questionID = btnID.substring(3,btnID.length);8 {2 x3 C, l2 _: x( M8 R
  41.            
    - n- O* y  P# \, h  `# P
  42.         var mark = parseInt($(txtID).value);, b  i0 v8 c8 j; m) J+ V- z; E
  43.        AjaxMethod.EditDiscussMark(studentPaperID,questionID,mark,callback_test1);        " K) c- X. S+ o* O/ u' P% P
  44.     }
    2 Q- D/ ]* m) F$ x3 R& J1 _
  45. </script>
复制代码
1.页面.cs文件中的Page_Load须包含
  1.                         Ajax.Utility.RegisterTypeForAjax(typeof(Ajax.AjaxMethod));+ z, i( P9 r4 c4 a& ?! h
复制代码
2.AjaxMethod类中添加
  1.         [Ajax.AjaxMethod(Ajax.HttpSessionStateRequirement.ReadWrite)]6 \+ x9 |5 W# d+ O( 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"/>, ^. X4 e4 H8 M% U/ V; V7 D1 [
  2. 3 ]$ X+ ?" M4 ~. Y% W
  3.       <add name="AjaxMethod" type="Ajax.PageHandlerFactory, Ajax" verb="POST,GET" path="ajax/*.ashx" />  //IIS版本为7.0以上添加/ }# ~5 C6 P( m: n8 m- t+ A  r* n
复制代码
5.打开IIS,点击“应用程序池”——右键“高级设置”——启用32位应用程序“True”
  B8 ^' v! d3 o) O  H2 M2 g
. [3 \$ h/ b; D) r" b1 Q0 |3 i) |6 X2 ]/ p, y
问题解决

本帖子中包含更多资源

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

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

本版积分规则

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

GMT+8, 2026-3-14 22:17 , Processed in 6.065041 second(s), 8 queries , Wincache On.

Powered by Discuz! X3.2

© 2001-2013 Comsenz Inc.

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