在asp.net Atlas中调用 Web Service时无法找到自定义的Web Service对象的可能原因
Posted on 2007-10-25 11:35 nect 阅读(289) 评论(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![](/Images/OutliningIndicators/None.gif)
8![](/Images/OutliningIndicators/None.gif)
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![](/Images/OutliningIndicators/InBlock.gif)
17
public MyService () {
18![](/Images/OutliningIndicators/InBlock.gif)
19
//如果使用设计的组件,请取消注释以下行
20
//InitializeComponent();
21
}
22![](/Images/OutliningIndicators/InBlock.gif)
23
[WebMethod]
24
public string Hello(string User) {
25
return "Hello " + User;
26
}
27
28
}
29![](/Images/OutliningIndicators/None.gif)
30![](/Images/OutliningIndicators/None.gif)
![](/Images/OutliningIndicators/None.gif)
2
![](/Images/OutliningIndicators/None.gif)
3
![](/Images/OutliningIndicators/None.gif)
4
![](/Images/OutliningIndicators/None.gif)
5
![](/Images/OutliningIndicators/None.gif)
6
![](/Images/OutliningIndicators/None.gif)
7
![](/Images/OutliningIndicators/None.gif)
8
![](/Images/OutliningIndicators/None.gif)
9
![](/Images/OutliningIndicators/ExpandedBlockStart.gif)
10
![](/Images/OutliningIndicators/InBlock.gif)
11
![](/Images/OutliningIndicators/ExpandedBlockEnd.gif)
12
![](/Images/OutliningIndicators/None.gif)
13
![](/Images/OutliningIndicators/None.gif)
14
![](/Images/OutliningIndicators/None.gif)
15
![](/Images/OutliningIndicators/ExpandedBlockStart.gif)
16
![](/Images/OutliningIndicators/InBlock.gif)
17
![](/Images/OutliningIndicators/ExpandedSubBlockStart.gif)
18
![](/Images/OutliningIndicators/InBlock.gif)
19
![](/Images/OutliningIndicators/InBlock.gif)
20
![](/Images/OutliningIndicators/InBlock.gif)
21
![](/Images/OutliningIndicators/ExpandedSubBlockEnd.gif)
22
![](/Images/OutliningIndicators/InBlock.gif)
23
![](/Images/OutliningIndicators/InBlock.gif)
24
![](/Images/OutliningIndicators/ExpandedSubBlockStart.gif)
25
![](/Images/OutliningIndicators/InBlock.gif)
26
![](/Images/OutliningIndicators/ExpandedSubBlockEnd.gif)
27
![](/Images/OutliningIndicators/InBlock.gif)
28
![](/Images/OutliningIndicators/ExpandedBlockEnd.gif)
29
![](/Images/OutliningIndicators/None.gif)
30
![](/Images/OutliningIndicators/None.gif)
除此以外,在调用Web service的ASPX页面中,增加web service的引用时要注意.asmx文件和当前.aspx文件的路径。
![](/Images/OutliningIndicators/None.gif)
![](/Images/OutliningIndicators/None.gif)
![](/Images/OutliningIndicators/None.gif)
![](/Images/OutliningIndicators/None.gif)
![](/Images/OutliningIndicators/None.gif)
不过我这里还有一个疑问:Dflying Chen 在介绍Javascript代码时直接使用了function "$()",但是没有进行明显的定义,我在使用的时候,这里也总是提示脚本错误,难道这个$()已经封装在所谓的Atlas.dll文件中了么?(我机器上好像没有这个文件。。。),高手请指点一下,先谢了,呵呵
遇到这个问题的朋友,可以在javascript增加function $()的定义,如下:
![](/Images/OutliningIndicators/ExpandedBlockStart.gif)