勇哥注:
wcf可以看作是webservice的技术扩展,但是不能简单的认为wcf无论什么场合都能替代webservice。
所以我们还是有必要多了解一下webservice。
WCF(Windows Communication Foundation)在技术上可以看作是对WebService的一种扩展和替代,
但它并不完全等同于或完全取代WebService。
WCF是微软为构建面向服务的应用程序而提供的一个统一的编程框架,
它整合了.NET Remoting、ASP.NET Web Services、消息队列(MSMQ)和Windows Communication Services(WCS)等技术,
并提供了统一的编程模型、通信机制和安全性模型。
WebService是一种基于XML和HTTP的、平台无关的、自包含的、自描述的、模块化的应用程序,
可以执行从简单的请求到复杂商务处理的任何功能。WebService的主要目标是跨平台的可互操作性,
只要使用XML作为标准的数据交换格式,任何支持这些标准的应用程序都可以相互通信。
WCF在功能性和灵活性上比WebService更为强大,它支持更多的协议(如TCP、HTTP、命名管道、MSMQ等)、
更多的数据格式(如XML、JSON等)和更多的安全性选项。
此外,WCF还提供了更丰富的服务契约和消息契约定义方式,以及更强大的服务宿主和服务发现机制。
然而,WebService也有其独特的优势,例如其跨平台性和简单的实现方式。在某些场景下,
WebService可能仍然是更好的选择。
因此,WCF和WebService并不是完全替代的关系,而是根据具体的需求和场景来选择使用哪种技术。
在某些情况下,WCF可能更适合用于构建复杂、高性能、高安全性的面向服务的应用程序;
而在其他情况下,WebService可能更适合用于简单的跨平台通信和数据交换。
新建一个web项目,选择mvc。
再添加一个“web服务(ASMX)”项目。
默认会自动添加一个HelloWorld方法。
在下面服务名字上右键,选择在浏览器中运行服务。
运行后,勇哥这边报下面的错误。
检查一下引用,可以看到这货在呢,那为啥会报错?
试着把引用去掉,再把packages.config中的引用记录删除。
重新安装Newtonsoft.json。
再次右键菜单,在浏览器中浏览webservice服务。
成功的看到了服务。
加几个函数,测试一下返回列表和传入多个参数。
注意只有加了[WebMethod]特性的方法才可以对外看得见。
[WebMethod]
public string HelloWorld()
{
return "Hello World";
}
[WebMethod]
public List<UserInfo> GetUsers()
{
var list1 = new List<UserInfo>();
list1.Add(new UserInfo()
{
Age=18, Name="刘备"
});
list1.Add(new UserInfo()
{
Age = 19,
Name = "刘天一"
});
list1.Add(new UserInfo()
{
Age = 20,
Name = "李华年"
});
return list1;
}
[WebMethod]
public int CalTwoNum(int a,int b)
{
return a + b;
}
这是GetUsers的结果:
这是CalTwoNum的结果
---------------------
作者:hackpig
来源:www.skcircle.com
版权声明:本文为博主原创文章,转载请附上博文链接!

