我近来的工作是将我们公司的C/S程序翻译成B/S,B/S采用的技术是ASPX.NET AJAX 1.0.

在C/S程序中有一个用来封装通用方法的类:Function.在我将其搬到B/S程序中时,却出现了意想不到的问题:

我的container.aspx不能局部刷新了?我检查了Function.asmx的编码规则和ScriptManager的引用方法,没有任何异常之处.
container.aspx部分代码:
<asp:ScriptManager ID="ScriptManager1" runat="server"> 
    <Services> 
        <asp:ServiceReference Path="Function.asmx" /> 
    </Services>
</asp:ScriptManager>
Function.asmx部分代码:
...
[ScriptSeriver]
...
[WebMethod]
public string Audit()

    return "Hello World !";
}

难道是因为我同时安装了VS2005和VS2008引起了冲突?可是VS2008是完全能兼容VS2005中的程序的啊.
经过漫长而又反复的探测,包括重建Function.asmx,我发现在[ScriptSeriver]和[WebMothed]只存其一的时候,
container.aspx是可以局部刷新的,但我将其全部加上后,container.aspx又不能局部更新了?为什么呢?
为什么在我完全按照ASPX.NET AJAX 1.0的规则使用WebService时,反而异常了呢?!!!
... ...
ScriptManager不能正常工作了?可是ScriptManager引用其他.asmx又能正常工作啊?难不成...见鬼了?!!
... ...
不知出于何种假设,我注意到了Function.asmx的命名!!!天哪!!!Function可是JavaScript的保留字啊!!!
用Function.asmx来命名,不出错,才就怪了.

也许只有像我这么"幽默"的人,才会犯如此般搞笑的失误吧!但我由衷的希望VS 2008里为ScriptManager添加上
关键字的检测功能.

宝贵的一上午啊!