晨鸟科技

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

IIS7.5 AjaxMethod 未定义解决办法

[复制链接]
跳转到指定楼层
楼主
发表于 2010-9-13 17:54:02 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
首先,交代下背景:! b4 |) K9 M- u/ O# ^, i
最近调试作业智能批改系统,其中在作业批改页用到了一点 ajax 技术(教师修改主观类题目分数需局部刷新),今天测试发现程序上传到windows server 2008 r2 的服务器上出现“AjaxMethod 未定义”错误,如下图:5 D/ W) i( v  j
9 @0 ?% G" D  T: L, x2 B  l5 K

& |; C, q# e5 @1 [! t1 v. C网上未找出此问题解决方法,纠结半天,最后修改服务器配置,问题解决...
$ \) }) D* X' w, u/ ^2 c8 i! c; _: d! {3 E
下面总结解决方法:9 u0 N! @! i. O3 x: {* k
先看页面js代码
  1. <script language="javascript">
    + f) b& L& r2 a# |7 d& Q
  2.     var questionID;
    + i' Y# w; m" g- m8 ]( K- G3 E
  3.     function $(ID)
    + ]+ C5 Z  i7 O; {) `. ]% _/ G6 ^- C
  4.         {6 P, G; U# z. Q
  5.             if(document.all)
    " d+ y+ Z8 b- \, N9 i
  6.                 return document.all[ID];  B3 R8 }$ O5 F1 E6 U! W
  7.             else if(document.getElementById)
    $ Z- G" T$ G3 Q- ]. _" Q
  8.                 return document.getElementById(ID);
    . {) s8 x6 o+ W* i) _  N( Z5 `
  9.             else
    / o  b: p  }1 z9 B& X$ d, ]6 z
  10.                 return null;
    / A8 ]; ^' E# t6 [5 W' j
  11.         }! p6 |3 w" f' x: }" s4 Y

  12. ) v  G8 W7 g2 I3 K" `5 ~
  13.     function callback_test1(res)
    " e; \! m- W# s7 H; X
  14.     {, e) E' [- Y3 Y# u9 N( o4 x9 R! ?/ m
  15.         if(res.value =="-1"), r! C6 {5 Y. Q
  16.         {# r0 r0 B/ c: o! J1 r
  17.             alert("必须输入数字");
    : P+ H7 L) @) d2 {4 @% d$ G, ?
  18.         }
    0 K2 Q: i5 V6 w4 h3 i
  19.         else if(res.value == "-2")- [  ~: i. M' e: B
  20.         {! Y! U/ _: l: Z+ P; i
  21.             alert("得分不能超过题目标准得分");
    6 \5 y2 W  I5 D/ M$ f1 C
  22.         }
    ( ~$ E! M" c: Y9 m9 p6 c
  23.         else{
    * X4 U* ~& |7 V" ?0 w# l4 c0 ?
  24.             var array  = res.value.split(",");- [  G8 c7 X8 V
  25.             document.getElementById("mark"+questionID).innerHTML = array[0];
    * T- N; X% N# F/ ^1 @2 x4 N
  26.             document.getElementById('totalMark').innerHTML = array[1];
    ' b$ B+ c6 c2 I4 @. o# Q
  27.             alert("修改成功!");
    - p. p  L! A# [
  28.         }
    7 F4 `/ g) d1 G" q" T
  29.            
    : p( J  X& g: I  f& X9 r" r6 ]
  30.     }# x) |4 Q! \( [: g# E+ N
  31.     function totalMark(spiID)
    ' x- H! [) V% V. K
  32.     {& v1 _6 Q( u; S9 H
  33.         AjaxMethod.TotalMark(spiID,callback_totalMark);
    ' _" [& ?# n8 D
  34.     }8 h! V. t3 p& R1 f
  35.     function editMark(btnID)
    / k4 W+ b% V' C( O8 [
  36.     {
    5 p) ~6 g* C; y8 m
  37.         var txtID = "txt"+btnID.substring(3,btnID.length);
    # a4 [# q- W  [. Q4 F3 t
  38. 7 M  |! a7 @  o
  39.         var studentPaperID = document.all.hiddenSpi.value;
    ) G5 v" {4 ?/ c" U3 k( M
  40.         questionID = btnID.substring(3,btnID.length);4 J- ]7 ?) l; I; Y8 U2 c
  41.            
    & }. G, J+ T/ j# ~+ ^9 `: l
  42.         var mark = parseInt($(txtID).value);
    + V, v7 c7 _( y! C1 W+ g" |; u
  43.        AjaxMethod.EditDiscussMark(studentPaperID,questionID,mark,callback_test1);       
    2 q/ W) B8 i! l9 |( f
  44.     }, I7 [+ Q# n0 A; r5 h; b
  45. </script>
复制代码
1.页面.cs文件中的Page_Load须包含
  1.                         Ajax.Utility.RegisterTypeForAjax(typeof(Ajax.AjaxMethod));
    . I, I) w: x. s" O6 C' N$ F* ^
复制代码
2.AjaxMethod类中添加
  1.         [Ajax.AjaxMethod(Ajax.HttpSessionStateRequirement.ReadWrite)]
    , D, ]! g" y: V- ?# }: R& C3 W( ]
复制代码
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"/># Y! h7 H+ `4 Z: C8 r3 `7 u
  2. : y2 s4 }: }: W9 [3 ]
  3.       <add name="AjaxMethod" type="Ajax.PageHandlerFactory, Ajax" verb="POST,GET" path="ajax/*.ashx" />  //IIS版本为7.0以上添加
    0 Y) c" v* |8 f1 g+ @
复制代码
5.打开IIS,点击“应用程序池”——右键“高级设置”——启用32位应用程序“True”
5 c$ g+ k. `  {; s
0 d5 S  C7 E- U- ~( M7 I6 @3 M) v0 W: v! s' h
问题解决

本帖子中包含更多资源

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

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

本版积分规则

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

GMT+8, 2025-8-1 04:58 , Processed in 6.065041 second(s), 8 queries , Wincache On.

Powered by Discuz! X3.2

© 2001-2013 Comsenz Inc.

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