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 运行效果