key Words:DPWS,嵌入式設備,WebService,Http,嗅探,Micro Framework。。
為了實現一個嵌入式設備和一個host在IIS server上面的WebService交互,使用了MF3.0裡面的DPWS方法。不過這個東西實在是Hard to use。今天就記錄下使用的過程中的第一步,首先分析一個Client和一個Webservice是如何交互的,發送的數據流的格式,然後在Device裡面封裝一下Soap頭用httpClIEnt發送出去。
這裡用到了WireShark來分析網絡交互的數據包。
首先定義一個運行在IIS上面的簡單的WebService:
namespace Cashfree.Vending.Web.WebService
{
[WebService(Namespace = "http://tempuri.org/")]
[WebServiceBinding(ConformsTo = WsiProfiles.BasicProfile1_1)]
[System.ComponentModel.ToolboxItem(false)]
public class IISWS : System.Web.Services.WebService
{
[WebMethod]
public string HelloWorld()
{
return "Hello Robin";
}
[WebMethod]
public int add(int a, int b)
{
return a + b;
}
}
}
然後定義一個ClIEnt來訪問這個Webservice:
namespace Cashfree.Vending.IISWSInvoke
{
class Program
{
static void Main(string[] args)
{
ISWSSoapClient isClient = new ISWSSoapClIEnt();
Console.WriteLine(isClIEnt.add(2, 3));
}
}
}