一 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;
}
}