关于Web Service部署问题,请教高手

progfans 2003-01-21 12:00:57
我照着教程做了个最简单的Web Service:
路径是:http://localhost/WebService1

using System;
using System.Web.Services;
public class AddNumbers : WebService
{
[WebMethod]
public int Add(int a, int b){
int sum;
sum = a + b;
return sum;
}
}

实现返回a+b的值,然后调试,部署都成功了,得到了WebService1.dll
我使用的名字空间(NameSpace)是NameSp
然后照着网上的文章将客户端程序也搞定了:
这个文件起名叫default.aspx
<%@ import Namespace = "NameSp" %>
<script language = "c#" runat = "server">
public void Page_Load(object o, EventArgs e){
int x = 10;
int y = 5;
int sum;
//Instantiating the public class of the webservice
AddNumbers AN = new AddNumbers();
sum = AN.Add(x,y);
string str = sum.ToString();
Response.Write(str);
}
</script>

然后访问http://localhost/WebService1/default.aspx
OK,结果出来了,显示15,非常正常。

但是我把这个文件目录改为WebService2,然后访问
http://localhost/WebService2/default.aspx
就不行了,报错说是不能找到名字空间NameSp,
VS.NET编译器指出是:<%@ import Namespace = "NameSp" %> 这行出错了。
我将目录名改回原来的WebService1就行了,Why?

难道系统什么地方指定了路径的么?一个描述文档.disco?我目录下的文件都没动过,只改了一下目录名而已!系统是怎样找到编译后的WebService1.dll的?
如果我在别人的服务器上发布我的作品,难道还要在别人的服务器上重新去编译一次?这多不方便啊!
...全文
32 2 打赏 收藏 转发到动态 举报
写回复
用AI写文章
2 条回复
切换为时间正序
请发表友善的回复…
发表回复
tangjun 2003-01-25
  • 打赏
  • 举报
回复
这个是很正常的,WebService是通过url来调用了,你改掉了目录也就是url所以找不到了
yyqing 2003-01-24
  • 打赏
  • 举报
回复
从你的代码中可知:你把客户端和WebService 放在了同一个虚拟目录下,当一切都是原始状况时当然正常,但当你更改了路径名后,WebService的命名空间已经改变,你将无法使用。解决办法是:
1.在一个Web 应用程序中引用你的WebService
2.把生成的Reference.cs 的第一个/// <remarks/>段开始到类结束的部分拷贝到你的页面程序中(PageLoad 前。当然你可以只拷贝需要使用的方法而不必把WebService 中的所有方法都拷过来,但要注意:每一个方法都由三个函数组成,最好将三个函数都拷过去)
3.使用时,先生成WebService实例,并将其Url 指向正确的地址,即可。

12,162

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术 Web Services
社区管理员
  • Web Services社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧