.net WebService的使用

1. WebService可单独作为一个网站,不限平台的被调用。

2. 打开VS,选择新建

  

3. 

[WebMethod] 方法上面有这个说明,则表示此方法可被外部调用。

我们添加4个方法:加、减、乘、除。

[WebMethod(Description = "求和的方法")]
public double addition(double i, double j)
{
  return i + j;
}

[WebMethod(Description = "求差的方法")]
public double substract(double i, double j)
{
  return i - j;
}

[WebMethod(Description = "求积的方法")]
public double multiplication(double i, double j)
{
  return i * j;
}

[WebMethod(Description = "求商的方法")]
public double division(double i, double j)
{
  if (j != 0)
    return i / j;
  else
    return 0;
}

添加完之后,可以直接运行VS查看。

 

表示webservice已经完成。

4. 将此网站,部署在IIS上,比如网站为:http://localhost:3001/Service.asmx

打开这个网站即可查看webservice的内容

 

5. 新建网站,调用webservice内容

在项目上引用web服务。

 

 

添加完成之后,在ASPX页面增加几个text框,进行加减乘除的运算。

6.  页面:

<body>
<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>
  <asp:Button ID="cau" Text=" = " runat="server"/>
  <asp:TextBox ID="Result" runat="server"></asp:TextBox>
</div>
</form>
</body>

 后台:

public partial class _Default : System.Web.UI.Page
{
  protected void Page_Load(object sender, EventArgs e)
  {
    cau.Click += new EventHandler(btn_Click);
  }

void btn_Click(object sender, EventArgs e)
{
  if (Num1.Text != "" && Num2.Text != "")
  {
    double para1 = double.Parse(Num1.Text);
    double para2 = double.Parse(Num2.Text);
    //实例化引用的webservice对象
    localhost.Service WebserviceInstance = new localhost.Service();
    int Oper = selectOper.SelectedIndex;
    switch (Oper)
    {
    case 0:
      Result.Text = WebserviceInstance.addition(para1, para2).ToString();
      break;
    case 1:
      Result.Text = WebserviceInstance.substract(para1, para2).ToString();
      break;
    case 2:
      Result.Text = WebserviceInstance.multiplication(para1, para2).ToString();
      break;
    case 3:
      Result.Text = WebserviceInstance.division(para1, para2).ToString();
      break;
    }
  }
}
}

运行网站即可。

7.调用webservice常用问题。

右键点击引用、添加服务引用,再点击弹出框里的高级,

 

 

如果IIS里webservice没有设置匿名访问则会出现401。

A. 如果可以匿名访问:

DocServ.DocService fe = new web2008T2.DocServ.DocService ();

string fi = fe.HelloWork();

  B.如果设置IIS时没有设置匿名,则:

docServ.DocService se = new web2008T2.docServ.DocService();
se.Url = "http://127.0.0.1:8050/DocAppWebService/DocService.asmx";
se.PreAuthenticate = true; 
se.Credentials = System.Net.CredentialCache.DefaultCredentials;
se.UseDefaultCredentials = true;

Label1.Text = se.GetListNumber("xiaoming", "borrow");

 

posted on 2016-03-17 16:55  bkin的笔记  阅读(243)  评论(0编辑  收藏  举报