晨鸟科技

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

IIS7.5 AjaxMethod 未定义解决办法

[复制链接]
跳转到指定楼层
楼主
发表于 2010-9-13 17:54:02 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
首先,交代下背景:" `: }5 E5 b2 ?9 V+ H2 b
最近调试作业智能批改系统,其中在作业批改页用到了一点 ajax 技术(教师修改主观类题目分数需局部刷新),今天测试发现程序上传到windows server 2008 r2 的服务器上出现“AjaxMethod 未定义”错误,如下图:
( I" G3 N* G& Q9 V- z) W6 T8 M' e0 D6 H. K+ C% @' O+ @
# A6 Z+ A  _# r
网上未找出此问题解决方法,纠结半天,最后修改服务器配置,问题解决...* |1 a% @/ W  V; Q' b" F
" b0 z" A7 \) B9 v9 k
下面总结解决方法:7 s# t) U, f3 {6 k9 f5 O
先看页面js代码
  1. <script language="javascript">* B0 [# S0 K9 [2 ~5 U
  2.     var questionID;
    3 U5 |+ c9 @  o) Z  C
  3.     function $(ID)7 i6 {. j7 Q# v0 _7 r& P
  4.         {
    2 b4 W, Q+ d( D; s
  5.             if(document.all)' c* J) [6 m) ~# F" w
  6.                 return document.all[ID];
    / }2 K* \( |" j2 l
  7.             else if(document.getElementById)
    " @/ U, ]# L6 k) @1 U* [( h. L
  8.                 return document.getElementById(ID);
    6 O. `4 y/ E& p0 m* h! h( N) `
  9.             else
    # b' P( C9 c4 `) w" E  _
  10.                 return null;% }9 c- V+ E. \3 P: S
  11.         }
    $ }+ D( R; A0 f! B' v! A

  12. 1 s. r' P' w6 S# g
  13.     function callback_test1(res), @' N3 }5 y4 f1 h7 w9 t
  14.     {
    ; }# @* s7 i6 `4 ^0 S. ~& f
  15.         if(res.value =="-1")
    % Z/ m' a1 v& y* \" ^1 o
  16.         {* G- P2 Z# S1 {+ d0 w% G1 K
  17.             alert("必须输入数字");. a: n. h/ c( r
  18.         }
    1 Z6 z  q7 t& n6 V
  19.         else if(res.value == "-2")
    9 \& I" Z- Y2 @/ n7 R& l  p: K, v
  20.         {
    $ D: `+ K3 n% ]/ C- b
  21.             alert("得分不能超过题目标准得分");0 J& A, k) x6 S( L* n; @
  22.         }; v/ b4 Y1 x' F! M
  23.         else{
    , S, S& }! Q* X" g2 P2 _, b
  24.             var array  = res.value.split(",");
    8 y" k( n+ F+ s/ w/ k% i( E
  25.             document.getElementById("mark"+questionID).innerHTML = array[0];
    ) z4 }# y' |  n) d% n6 ?6 l+ H
  26.             document.getElementById('totalMark').innerHTML = array[1];
    9 e- Q; F9 A# e! Q% r; U! z3 y
  27.             alert("修改成功!");
    % S2 H2 z6 _% g* }) |6 t
  28.         }
    $ @# Q. l+ l2 M( M. p
  29.             ) Y; O  N# N7 J* b8 ~
  30.     }. b  s4 W- e7 p% T' D
  31.     function totalMark(spiID)" H! u3 j+ O  w
  32.     {
    ' C0 q4 g& ]/ X9 c
  33.         AjaxMethod.TotalMark(spiID,callback_totalMark);) C0 U& O! a/ `7 d& p
  34.     }
    / T- c2 j5 I; Q8 S
  35.     function editMark(btnID). f* w; k; Y& y) \* |" B
  36.     {
    9 N9 t  X0 h3 Q. L% i- w
  37.         var txtID = "txt"+btnID.substring(3,btnID.length);
    4 ^: `/ f! n+ n8 p
  38. ; M2 @8 D1 T8 W! M) m
  39.         var studentPaperID = document.all.hiddenSpi.value;
    0 l: K8 U9 N' u* i  V5 X* w% v
  40.         questionID = btnID.substring(3,btnID.length);
    , y; n1 X2 E/ M
  41.             9 J7 h# K, r; V; Y5 f2 F% w
  42.         var mark = parseInt($(txtID).value);, Q) B- D, m' w" {7 U* B! J0 \8 {
  43.        AjaxMethod.EditDiscussMark(studentPaperID,questionID,mark,callback_test1);       
    4 C4 W0 i( x# n% P/ e4 A8 T6 R9 }
  44.     }
    2 r  Y/ o0 h! S/ `% n. J8 b
  45. </script>
复制代码
1.页面.cs文件中的Page_Load须包含
  1.                         Ajax.Utility.RegisterTypeForAjax(typeof(Ajax.AjaxMethod));
    ( ~$ |: N: Q7 Y! h
复制代码
2.AjaxMethod类中添加
  1.         [Ajax.AjaxMethod(Ajax.HttpSessionStateRequirement.ReadWrite)]/ R# b7 x* B6 d9 a* z# o+ Y2 q
复制代码
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"/>
      e% |' u# p: o9 k/ y) o1 @

  2. , `4 v3 I- n/ S; c3 T, G/ R/ O
  3.       <add name="AjaxMethod" type="Ajax.PageHandlerFactory, Ajax" verb="POST,GET" path="ajax/*.ashx" />  //IIS版本为7.0以上添加+ ]; N/ \! a8 I0 s
复制代码
5.打开IIS,点击“应用程序池”——右键“高级设置”——启用32位应用程序“True”
/ E& d7 l3 K9 X+ ?, E6 a( {4 t9 [$ I8 x

7 [: T1 l7 `: H0 ~2 t% [, ]% S% E问题解决

本帖子中包含更多资源

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

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

本版积分规则

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

GMT+8, 2025-10-31 10:36 , Processed in 6.072853 second(s), 8 queries , Wincache On.

Powered by Discuz! X3.2

© 2001-2013 Comsenz Inc.

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