如题。

这种东西基于微软的一整套东西,在.NET内使用特别方便。利弊自行衡量,是否使用自行决定。

步骤1、创建一组在网上发布的方法

  新建项目,类型选择“WCF服务应用程序”

  

   在项目里,你可以补充任意的c#方法,例如:

  

   注意:所有方法都必须在接口文件里有说明,否则无法发布。后面会提到。

  至此,用户自定义方法完成。“调试”可以在iisexpress中发布:

  

  浏览器里访问的情况如下图:

  

   至此,服务发布成功。当然,通过iis正式发布是真实案例中最常用的方式。

步骤2、调用wcf服务。

  核心:新建任意一个项目,引用这个服务,创建客户端,调用它。

  

   输入url,转到:

  

  此处能看到作为服务提供的几个方法。命名空间可以采用默认的“ServiceReference1”

  主程序中添加必要的引用  

 using ConsoleApp1.ServiceReference1;

  程序中就可以使用这些方法了  

 static void Main(string[] args)
{
Service1Client sc = new Service1Client();
int x = ;
x = sc.doubleX();
Console.WriteLine(x);
Console.ReadKey();
}

  运行结果:

  

注意:要发布的方法,一定要在接口文件(本例为IService1.cs)里加以说明:

 public interface IService1
{ [OperationContract]
string GetData(int value);
[OperationContract]
int doubleX(int x);
[OperationContract]
CompositeType GetDataUsingDataContract(CompositeType composite); // TODO: 在此添加您的服务操作
}

再次强调,这种服务通常使用iis发布,可以提供更加灵活的调用。相比于webapi,编写和调用习惯都更贴近于常规的c#程序。

缺点:一般仅提供给c#项目。

这种用法,类似于webapi,很贴近于MVC架构里的C。

典型用途:在数据库服务器上做一个wcf程序,可以为数据库应用做一次封装。无论是把access变成“网络数据库”;还是把网络数据库的网络访问权限关闭,仅靠wcf提供服务,以提高安全性,都可以。

C#中使用WCF创建面向网络的服务程序的更多相关文章

  1. 宿主在Windows Service中的WCF(创建,安装,调用) (host到exe,非IIS)

    1. 创建WCF服务 在vs2010中创建WCF服务应用程序,会自动生成一个接口和一个实现类:(IService1和Service1) IService1接口如下:   using System.Ru ...

  2. SDNLAB技术分享(四):利用ODL下发流表创建VxLAN网络

    邓晓涛,当前就职于江苏省未来网络创新研究院,是CDN团队的一名研发人员,主要从事SDN相关的研发相关工作.曾就职于三星电子于先行解决方案研发组任高级工程师.思科系统于云协作应用技术部(CCATG)任工 ...

  3. JAVA中-面向网络编程---单层交互

    面向网络编程---单层交互: 客户端说明: /* * 实现TCP客户端,链接到服务器 * 和服务器实现数据交互 * 实现TCP客户端的类 java.net.Scoket * 构造方法: * Socke ...

  4. web中简单wcf的创建和应用

    以前做过wcf控制台作为宿主,今天回顾一下,不过公司用的web直接创建就把这种过程写下来. 第一步:创建wcf页面如图 第二步:创建wcf时候已经自动生成了接口(契约)和实现类(契约),但是我们可以修 ...

  5. WCF 创建WCF

    一.概述 Windows Communication Foundation(WCF)是由微软发展的一组数据通信的应用程序开发接口,可以翻译为Windows通讯接口,它是.NET框架的一部分.由 .NE ...

  6. 用C#基于WCF创建TCP的Service供Client端调用

    本文将详细讲解用C#基于WCF创建TCP的Service供Client端调用的详细过程 1):首先创建一个Windows Service的工程 2):生成的代码工程结构如下所示 3):我们将Servi ...

  7. SharePoint 2013 中自定义WCF服务

    在使用SharePoint2013的时候,如果其他客户端 API 的组合不足,可以通过自定义 Web 服务扩展 SharePoint.默认情况下,SharePoint 2013 不仅支持创建自定义 A ...

  8. iOS中plist的创建,数据写入与读取

    iOS中plist的创建,数据写入与读取 Documents:应用将数据存储在Documents中,但基于NSuserDefaults的首选项设置除外Library:基于NSUserDefaults的 ...

  9. 个人项目中的WCF使用

    今天闲着无事,给大家分享一下我的一个项目中WCF的使用.我这项目使用的是Silverlight,至于其他类型的使用方法也是一样的. 1.建立一个Silverlight带Web项目的解决方案. 2.在w ...

随机推荐

  1. 如何用charles进行https抓包

    版权声明:本文为xing_star原创文章,转载请注明出处! 本文同步自http://javaexception.com/archives/138 如何用charles进行https抓包 晚上在家鼓捣 ...

  2. IDEA下新建Vue项目

    1.首先需要安装nodeJS,并配置全局环境变量. 2.在IDEA中新建一个空的project 3.在setting中配置JavaScript的语言版本为6 在file types的html中添加.* ...

  3. 一个java的http请求的封装工具类

    java实现http请求的方法常用有两种,一种则是通过java自带的标准类HttpURLConnection去实现,另一种是通过apache的httpclient去实现.本文用httpclient去实 ...

  4. 【JavaWeb】FreeMarker快速入门

    FreeMarker Freemarker是免费开源的模板引擎技术: Freemarker脚本为Freemarker Template Language: Freemarker提供了大量内建函数来简化 ...

  5. Vue.js+cube-ui(Scroll组件)实现类似头条效果的横向滚动导航条

    本博主在一次个人移动端项目中,遇到这么一个需求:希望自己的项目中,头部导航条的效果可以像今日头条那样,横向滚动! 对于这样的效果,在各大移动端项目中几乎是随处可见,为什么呢? 我们都知道,对于移动端也 ...

  6. 7-SQL-join连接

    (1) 内连接 关键字:inner join on select * from a_table inner join b_table on a_table.a_id = b_table.b_id; / ...

  7. configure.ac文件和Makefile.am文件 编译

    在编译安装openvpn 项目时遇到,其编译过程如下:生成 configure 可执行文件 make && make install ; . aclocal . autoconf . ...

  8. Linux系统快速操作常用快捷键

    快捷键名称 快捷键作用 Ctrl + a 将光标移至行首 Ctrl + e 将光标移至行尾 Ctrl + u 前提光标在行尾,则清除当前行所有的内容(有空格照章清除) Ctrl + k 前提光标在行首 ...

  9. js 时间戳转yyyy-MM-dd HH-mm-ss工具类

    转载自:https://blog.csdn.net/shan1774965666/article/details/55049819 在web开发中,我们经常需要用js将时间戳转yyyy-MM-dd H ...

  10. CodeForces 984C Finite or not?

    http://codeforces.com/problemset/problem/984/C Time limit    1000 msMemory limit    262144 kB 题目 You ...