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");