1. 實現linux mono Develop中調用windows 中的webService
l linux 與 windows 在一個區域網路的網段中
l windows 的IIs中發布webService
2. windows 中的設定
l webService 的代碼
using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Web.Services;
namespace MonoWebService
{
/// <summary>
/// Service1 的摘要說明
/// </summary>
[WebService(Namespace = "http://tempuri.org/")]
[WebServiceBinding(ConformsTo = WsiProfiles.BasicProfile1_1)]
[System.ComponentModel.ToolboxItem(false)]
// 若要允許使用 ASP.NET AJAX 從指令碼中調用此 Web 服務,請取消對下行的注釋。
// [System.Web.Script.Services.ScriptService]
public class Service1 : System.Web.Services.WebService
{
[WebMethod]
public string HelloWorld()
{
string text=string.Format("Machine Name:{0} Time:{1}",this.Server.MachineName,DateTime.Now.ToString());
return text;
}
}
}
l 發布webService
l 在IE中測試
l 如果原生防火強開啟,請關閉。如果防火牆開啟,windows會阻止linux的訪問
3. Linux中的設定
l Mono中的調用代碼
using System;
using System.Collections;
namespace WebServiceCallApp
{
class MainClass
{
public static void Main(string[] args)
{
//Console.WriteLine("Hello World!");
ArrayList myList=new ArrayList();
WinService.Service1 myService=new WinService.Service1();
Console.Write(myService.HelloWorld());
Console.Read();
}
}
}
l 確認Windows 的 WebService 可訪問
l Mono中添加webService
注意一定要加成http://10.168.14.131/Service1.asmx?wsdl
Wsdl 必須有,不然monoDevelop 找不到webService
l 運行效果