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?運行效果
?
?
