在asp.net Atlas中调用 Web Service时无法找到自定义的Web Service对象的可能原因
Posted on 2007-10-25 11:35 nect 阅读(296) 评论(0) 收藏 举报
今天看了Dflying Chen 的关于在ASP.NET Atlas种调用Web Service的文章,
对我们这些初学者确实起到不小的作用,但是文章中只注重的相对比较重要的内容,对一些细节问题没有进行强调,造成了很多网友在使用时都出现了Web Service对象无法找到的问题。
而且我开始模拟练习的时候也出现了这样的问题,为什么人家可以,我这里就不行了呢?
最终被我发现了问题的原因:
除此以外,在调用Web service的ASPX页面中,增加web service的引用时要注意.asmx文件和当前.aspx文件的路径。
<asp:ScriptManager ID="ScriptManager1" runat="server">
<Services>
<asp:ServiceReference Path="MyService.asmx" /> <!-- 这里要注意.asmx文件和.aspx文件的相对路径-->
</Services>
</asp:ScriptManager>
不过我这里还有一个疑问:Dflying Chen 在介绍Javascript代码时直接使用了function "$()",但是没有进行明显的定义,我在使用的时候,这里也总是提示脚本错误,难道这个$()已经封装在所谓的Atlas.dll文件中了么?(我机器上好像没有这个文件。。。),高手请指点一下,先谢了,呵呵
遇到这个问题的朋友,可以在javascript增加function $()的定义,如下:
function $(s){return document.getElementById(s);}
对我们这些初学者确实起到不小的作用,但是文章中只注重的相对比较重要的内容,对一些细节问题没有进行强调,造成了很多网友在使用时都出现了Web Service对象无法找到的问题。
而且我开始模拟练习的时候也出现了这样的问题,为什么人家可以,我这里就不行了呢?
最终被我发现了问题的原因:
1
using System;
2
using System.Web;
3
using System.Collections;
4
using System.Web.Services;
5
using System.Web.Services.Protocols;
6
using System.Web.Script.Services;//必须加上这个引用,目的是在14行增加ScriptService属性
7![]()
8![]()
9
/// <summary>
10
/// MyService 的摘要说明
11
/// </summary>
12
[WebService(Namespace = "http://tempuri.org/")]
13
[WebServiceBinding(ConformsTo = WsiProfiles.BasicProfile1_1)]
14
[ScriptService]//第6行引用后,再这里增加[ScriptService]属性,这样aspx页面就可以找到这个webservice了
15
public class MyService : System.Web.Services.WebService {
16![]()
17
public MyService () {
18![]()
19
//如果使用设计的组件,请取消注释以下行
20
//InitializeComponent();
21
}
22![]()
23
[WebMethod]
24
public string Hello(string User) {
25
return "Hello " + User;
26
}
27
28
}
29![]()
30![]()

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

18

19

20

21

22

23

24

25

26

27

28

29

30

除此以外,在调用Web service的ASPX页面中,增加web service的引用时要注意.asmx文件和当前.aspx文件的路径。





不过我这里还有一个疑问:Dflying Chen 在介绍Javascript代码时直接使用了function "$()",但是没有进行明显的定义,我在使用的时候,这里也总是提示脚本错误,难道这个$()已经封装在所谓的Atlas.dll文件中了么?(我机器上好像没有这个文件。。。),高手请指点一下,先谢了,呵呵
遇到这个问题的朋友,可以在javascript增加function $()的定义,如下:
