VS2010 使用WebService

vs2010上面找不到直接创建webservice模板方式了。可以通过一下方式创建。

1.如果直接选择 .NET 4.0,可以选择 ASP.NET Empty Web Site/Application 模板,建立空的 Web 网站或项目,在添加新项窗口中,你依然会发现 Web Service 这个项模板。
2.可以先选择 .NET 2.0/3.0/3.5,就可以选择 ASP.NET Web Services 模板建立了,之后如果需要 .NET 4.0 的新特性,可以在项目属性窗口或网站属性页窗口的 Build 选项卡中选择 .NET 4.0。

PS:这个是我百度别人。

首先创建空白解决方案。

 

然后在解决方案右击-添加-新建项目-选择web应用程序就行

在应用程序上右击-添加-web服务

 

添加完成以后可以看到

里面已经建立了框架

可以直接运行查看

点击超链接到下一页

点击调用到就可以看到用XML格式返回的Web Service结果下图。说明环境搭建成功测试没有问题。

接下来创建一个简单带有功能的Web Service

注销原来的代码,写自己接口方法

[WebMethod(Description = "加法")]
public double add(double i, double j)
{
return i + j;
}
[WebMethod(Description = "减法")]
public double sub(double i, double j)
{
return i - j;
}
[WebMethod(Description = "乘法")]
public double mul(double i, double j)
{
return i * j;
}
[WebMethod(Description = "除法")]
public double div(double i, double j)
{
if (j != 0)
return i / j;
else
return 0;
}

运行后可以看到我们自己的方法。

现在我们来调用它 

 在新建的项目右击添加服务引用,在url 框中输入刚才访问接口的url地址

(注意不是添加服务引用,方法是:在资源管理器中点击右键,选择【添加服务引用】,点击 【高级】,【添加WEB引用】,调出对话框)

 点击添加引用

 

 如下图,解决方案中会出现引进来的WebService文件

先在网页上添加几个控件用来测试

 <form id="form1" runat="server">
       <div>
             <asp:TextBox ID="Num1" runat="server"></asp:TextBox>
             <select id="selectOper" runat = "server">
               <option>+</option>
               <option>-</option>
                 <option>*</option>
                 <option>/</option>
             </select>
             <asp:TextBox ID="Num2" runat="server"></asp:TextBox>
             <span id = E runat = "server"></span>
            <asp:TextBox ID="Result" runat="server"></asp:TextBox>
         </div>
 </form>

后台代码

public partial class _Default : System.Web.UI.Page
{
protected void Page_Load(object sender, EventArgs e)
{
//在页面加载的时候动态创建一个按钮,在它的事件里调用Webservice
Button btn = new Button();
btn.Width = 20;
btn.Text = " = ";
btn.Click += new EventHandler(btn_Click);
E.Controls.Add(btn);
}


/// <summary>
/// 定义动态创建Button的Click事件,在这个事件中调用Webservice
/// </summary>
/// <param name="sender"></param>
/// <param name="e"></param>
void btn_Click(object sender, EventArgs e)
{
if (Num1.Text != "" && Num2.Text != "")
{
//实例化引用的webservice对象
localhost.WebService WebserviceInstance = new localhost.WebService();
int Oper = selectOper.SelectedIndex;
switch (Oper)
{
//通过实例化的webservice对象来调用Webservice暴露的方法
case 0:
Result.Text = WebserviceInstance.add(double.Parse(Num1.Text), double.Parse(Num2.Text)).ToString();
break;
case 1:
Result.Text = WebserviceInstance.sub(double.Parse(Num1.Text), double.Parse(Num2.Text)).ToString();
break;
case 2:
Result.Text = WebserviceInstance.mul(double.Parse(Num1.Text), double.Parse(Num2.Text)).ToString();
break;
case 3:
Result.Text = WebserviceInstance.div(double.Parse(Num1.Text), double.Parse(Num2.Text)).ToString();
break;
}
}
}
}
}

然后开始测试了

测试成功

原文地址:https://www.cnblogs.com/kgdjgd/p/5652716.html