在asp.net Atlas中调用 Web Service时无法找到自定义的Web Service对象的可能原因
Posted on 2007-10-25 11:35 nect 阅读(291) 评论(0) 编辑 收藏 举报
今天看了Dflying Chen 的关于在ASP.NET Atlas种调用Web Service的文章,
对我们这些初学者确实起到不小的作用,但是文章中只注重的相对比较重要的内容,对一些细节问题没有进行强调,造成了很多网友在使用时都出现了Web Service对象无法找到的问题。
而且我开始模拟练习的时候也出现了这样的问题,为什么人家可以,我这里就不行了呢?
最终被我发现了问题的原因:
除此以外,在调用Web service的ASPX页面中,增加web service的引用时要注意.asmx文件和当前.aspx文件的路径。
不过我这里还有一个疑问:Dflying Chen 在介绍Javascript代码时直接使用了function "$()",但是没有进行明显的定义,我在使用的时候,这里也总是提示脚本错误,难道这个$()已经封装在所谓的Atlas.dll文件中了么?(我机器上好像没有这个文件。。。),高手请指点一下,先谢了,呵呵
遇到这个问题的朋友,可以在javascript增加function $()的定义,如下:
对我们这些初学者确实起到不小的作用,但是文章中只注重的相对比较重要的内容,对一些细节问题没有进行强调,造成了很多网友在使用时都出现了Web Service对象无法找到的问题。
而且我开始模拟练习的时候也出现了这样的问题,为什么人家可以,我这里就不行了呢?
最终被我发现了问题的原因:
1using System;
2using System.Web;
3using System.Collections;
4using System.Web.Services;
5using System.Web.Services.Protocols;
6using 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了
15public 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
2using System.Web;
3using System.Collections;
4using System.Web.Services;
5using System.Web.Services.Protocols;
6using 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了
15public 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
除此以外,在调用Web service的ASPX页面中,增加web service的引用时要注意.asmx文件和当前.aspx文件的路径。
<asp:ScriptManager ID="ScriptManager1" runat="server">
<Services>
<asp:ServiceReference Path="MyService.asmx" /> <!-- 这里要注意.asmx文件和.aspx文件的相对路径-->
</Services>
</asp:ScriptManager>
<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);}