一 Web Service的创建
1.在WebApplication下创建WebService
2.创建Request类与Response类,用于传参和返回参数。
Request是接口参数,在对方调接口函数时填写的参数。
Response是接口函数的返回值,一般返回接口执行状态和对应的信息。
using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
namespace MinthInterfaceService.Model
{
[Serializable]
public class Request
{
public string Parameter1 { get; set; }
public string Parameter2 { get; set; }
public string Parameter3 { get; set; }
}
[Serializable]
public class Response
{
public bool Flag { get; set; }
public string Message { get; set; }
}
}
3.在asmx文件中完成接口方法的创建
using MinthInterfaceService.Model;
using System;
using System.Collections.Generic;
using System.IO;
using System.Linq;
using System.Text;
using System.Web;
using System.Web.Services;
using System.Xml;
using System.Xml.Serialization;
namespace MinthInterfaceService
{
/// <summary>
/// Summary description for WebServiceDemo
/// </summary>
[WebService(Namespace = "http://tempuri.org/")]
[WebServiceBinding(ConformsTo = WsiProfiles.BasicProfile1_1)]
[System.ComponentModel.ToolboxItem(false)]
// To allow this Web Service to be called from script, using ASP.NET AJAX, uncomment the following line.
// [System.Web.Script.Services.ScriptService]
public class WebServiceDemo : System.Web.Services.WebService
{
[WebMethod]
public Response WebServiceMethod(Request request)
{
Response response = new Response();
try
{
string requestXmlDoc = string.Empty;
using (MemoryStream stream = new MemoryStream())
{
XmlSerializer xmlSerializer = new XmlSerializer(typeof(Request));
xmlSerializer.Serialize(stream, request);
requestXmlDoc = Encoding.UTF8.GetString(stream.ToArray());//序列化
}
response.Flag = true;
response.Message = "Succeed to run the interface.";
XmlDocument xmlDoc = new XmlDocument();
xmlDoc.LoadXml(requestXmlDoc);
XmlNode Request_xml = xmlDoc.SelectSingleNode("Request");//反序列化
if(Request_xml != null)
{
string p1 = Request_xml["Parameter1"].InnerText;
int p2 = int.Parse(Request_xml["Parameter2"].InnerText);
DateTime p3 = DateTime.Parse(Request_xml["Parameter3"].InnerText);
//method(對數據處理的方法)
}
}
catch(Exception ex)
{
response.Flag = false;
response.Message = "Failed to run the interface:"+ex.Message.ToString();
}
return response;
}
}
}
经过以上三步,Web Service的创建已经完成。
二 Web Service 的发布
1.Buid创建接口的WebApplication
2.Publish The WebApplication,将生成文件夹,里面包含要发布的接口。
3.打开IIS,创建Site。Physical path 选择刚才publish的document.
初次使用IIS,在访问接口时,可能会出现权限问题。
添加权限:在Edit Permissions->Security Tab 中添加Everyone,fullcontrol.
4.若可以访问,则Web Service就发布完成。
三 Web Service的调用:
1.添加Web Service引用
右键点击需要引用该Web Service 的 WebApplication---->add---->Service Reference---->Advanced---->Add Web Reference---->URL填写发布的地址---->Web Reference name
在添加完成后,会生成一个Web Reference的文件夹,包含添加的Web Service.
2 调用Web Service
protected void Button5_Click(object sender, EventArgs e)
{
WebServiceDemo webServiceDemo = new WebServiceDemo();
Request request = new Request()//此處的Request在接口中已經定義,不需要再定義
{ Parameter1_string = "Hello",
Parameter2_int = 1,
Parameter3_datetime = DateTime.Now
};
Response response = webServiceDemo.WebServiceMethod(request);
if(response.Flag == true)
{
}
else if(response.Flag == false)
{
string errorMessage = response.Message;
}
}