怎样调用web service

allonkwok 2006-07-19 11:52:38
最近在看一本.net的书籍,根据书上的内容写了一个简单的web service,web service文件是test.asmx,调用文件是test.aspx,虽然我按照书本上的代码写了下来,但还是出现了错误:

分析器错误信息: “Import”指令不支持“Namepace”属性。

源错误:


行 1: <%@ Import Namepace="MathService"%>
行 2: <Script language="C#" runat="server">
行 3: int operand1 = 0;


源文件: H:\wwwroot\guestbook\test.aspx 行: 1


两个文件的代码如下:
test.asmx

<%@ WebService Language="C#" Class="MathService"%>
using System;
using System.Web.Services;

public class MathService
{
[WebMethod]
public int Add(int a,int b)
{
return a + b;
}

[WebMethod]
public int Substract(int a, int b)
{
return a - b;
}

[WebMethod]
public int Multiply(int a , int b)
{
return a * b;
}

[WebMethod]
public int Divide(int a , int b)
{
if (b==0) return -1;
return a / b;
}
}


test.aspx

<%@ Import NameSpace="MathServiceSpace"%>
<Script language="C#" runat="server">
int operand1 = 0;
int operand2 = 1;
public void Submit_Click(object sender,EventArgs e)
{
try
{
operand1= Int32.Parse(Operand1.Text);
operand2= Int32.Parse(Operand2.Text);
}
catch (Exception)
{
Result.Text="数字初始化错误";
}
MathService Service=new MathService();
switch (((control)sender).ID)
{
case "Add":
Result.Text="计算结果:"+Service.Add(operand1,operand2).ToString;
break;
case "Subtract":
Result.Text="计算结果:"+Service.Subtract(operand1,operand2).ToString;
break;
case "Multiply":
Result.Text="计算结果:"+Service.Multiply(operand1,operand2).ToString;
break;
case "Divide":
Result.Text="计算结果:"+Service.Divide(operand1,operand2).ToString;
break;
}
}
</script>
<html>
<body>
<form runat="server">
Operand1:<asp:TextBox id="Operand1" runat="server"/><br>
Operand2:<asp:TextBox id="Operand2" runat="server"/><br>
<input type="button" id="Add" value="Add" OnServerClick="Submit_Click" runat="server"><br>
<input type="button" id="Subtract" value="Subtract" OnServerClick="Submit_Click" runat="server"><br>
<input type="button" id="Multiply" value="Multiply" OnServerClick="Submit_Click" runat="server"><br>
<input type="button" id="Divide" value="Divide" OnServerClick="Submit_Click" runat="server"><br>
<asp:Label id="Result" runat="server"/>
</form>
</body>
</html>
...全文
123 10 打赏 收藏 转发到动态 举报
写回复
用AI写文章
10 条回复
切换为时间正序
请发表友善的回复…
发表回复
cic_wxf 2006-07-19
  • 打赏
  • 举报
回复
右健单击,添加web引用
hzw66 2006-07-19
  • 打赏
  • 举报
回复
Namepace错了
Namespace
paddycf001 2006-07-19
  • 打赏
  • 举报
回复
直接右键项目"添加Web引用"好了.不用写代码,然后指定为MathServiceSpace
allonkwok 2006-07-19
  • 打赏
  • 举报
回复
我把 Import 改成这样

<% @ Import Namespace="MathServiceSpace" %>

还是不行,还是头一行:
找不到类型或命名空间名称“MathServiceSpace”(是否缺少 using 指令或程序集引用?)

创建对象实例我也改用了你这个
MathServiceSpace.MathService Service =new MathServiceSpace.MathService();

不知道会不会是别的问题呢??


另外问一下,如果只有test.asmx,引用它的时候要使用哪个语句?
allonkwok 2006-07-19
  • 打赏
  • 举报
回复
我把 Import 改成这样

<% @ Import Namespace="MathServiceSpace" %>

还是不行,还是头一行:
找不到类型或命名空间名称“MathServiceSpace”(是否缺少 using 指令或程序集引用?)

创建对象实例我也改用了你这个
MathServiceSpace.MathService Service =new MathServiceSpace.MathService();

不知道会不会是别的问题呢??


另外问一下,如果只有test.asmx,引用它的时候要使用哪个语句?
paddycf001 2006-07-19
  • 打赏
  • 举报
回复
MathServiceSpace.MathService Service =new MathServiceSpace.MathService();
allonkwok 2006-07-19
  • 打赏
  • 举报
回复
回 paddycf001(麦兜):

用你的方法试了,也是一样。

我的错误是在test.aspx第一行,似乎找不到这个Web服务 MathService
paddycf001 2006-07-19
  • 打赏
  • 举报
回复
添加web引用的时候要指定一个命名空间,如果是localhost,
那么需要
locaohost.MathService Service=new locaohost.MathService();

allonkwok 2006-07-19
  • 打赏
  • 举报
回复
回超越理想:
那是是我写错了,不过改回Namespace后还是出现错误



编译器错误信息: CS0246: 找不到类型或命名空间名称“MathService”(是否缺少 using 指令或程序集引用?)

源错误:

行 1: <%@ Import Namespace="MathService"%>
行 2: <Script language="C#" runat="server">
行 3: int operand1 = 0;

源文件: H:\wwwroot\guestbook\test.aspx 行: 1
Teng_s2000 2006-07-19
  • 打赏
  • 举报
回复
public class MathService:System.Web.Services.WebService

62,046

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术交流专区
javascript云原生 企业社区
社区管理员
  • ASP.NET
  • .Net开发者社区
  • R小R
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

.NET 社区是一个围绕开源 .NET 的开放、热情、创新、包容的技术社区。社区致力于为广大 .NET 爱好者提供一个良好的知识共享、协同互助的 .NET 技术交流环境。我们尊重不同意见,支持健康理性的辩论和互动,反对歧视和攻击。

希望和大家一起共同营造一个活跃、友好的社区氛围。

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