1.在项目工程里添加wcf服务,工程中会出现两个文件IService.cs和Service.cs.

IService.cs中定义服务中的接口,接口必须加特性[OperationContract]才能在客户端添加服务后,实例化对象中发现该函数。

namespace ConsoleApplication1
{
[ServiceContract]
public interface IMyService
{
[OperationContract]
void DoWork();[OperationContract]
void MyFunction();
}
}

Service.cs中实现接口

2.添加一个服务后,app.config配置服务信息。配置文件信息可以通过vs 提供的wcf服务配置编辑器来生成,具体可以在网上查到。添加service和contract几个关键节点。

<?xml version="1.0" encoding="utf-8" ?>
<configuration>
<startup>
<supportedRuntime version="v4.0" sku=".NETFramework,Version=v4.5" />
</startup>
<system.serviceModel>
<behaviors>
<serviceBehaviors>
<behavior name=""><!--在部署前将以下值设置为 false 避免泄漏元数据信息--><!- --这个信息在用户添加服务时使用,不然客户端无法通过添加服务引用找到服务 -->
<serviceMetadata httpGetEnabled="true" httpsGetEnabled="true" />  <!-- 要接收故障异常详细信息以进行调试,请将以下值设置为 true。在部署前设置为 false 以避免泄漏异常信息 --><serviceDebug includeExceptionDetailInFaults="false" /></behavior>
</serviceBehaviors>
</behaviors>
<services>
<service name="ConsoleApplication1.MyService">
<endpoint address="" binding="basicHttpBinding" contract="ConsoleApplication1.IMyService">
<identity>
<dns value="localhost" />
</identity>
</endpoint>
<endpoint address="mex" binding="mexHttpBinding" contract="IMetadataExchange" />
<host>
<baseAddresses><!-用户客户端添加服务引用的地址-  -->
<add baseAddress="http://192.168.1.109:8733//MyService/" />
</baseAddresses>
</host>
</service>
</services>
</system.serviceModel>
</configuration>

  

3.启动服务。

在main中添加如下代码

ServiceHost host = new ServiceHost(typeof(MyService)); //把WCF的service宿主在这里
host.Open();
Console.WriteLine("服务已经启动");
Console.Read();

这样这个服务就已经启动了。

3-1.不编写配置文件也可以启动服务,需要在代码里对配置信息进行确定。

 using (ServiceHost host = new ServiceHost(typeof(MyWcfService.Service))){host.AddServiceEndpoint(typeof(MyWcfService.IService), new WSHttpBinding(), "http://localhost:9999/Service.svc");if (host.Description.Behaviors.Find<ServiceMetadataBehavior>() == null){ServiceMetadataBehavior behavior = new ServiceMetadataBehavior();behavior.HttpGetEnabled = true;behavior.HttpGetUrl = new Uri("http://localhost:9999/Service1/hi");host.Description.Behaviors.Add(behavior);}host.Opened += delegate{Console.WriteLine("服务已经启动,按任意键终止服务!");};host.Open();Console.Read();

这样也可以启动服务。

4.引用服务

在任意工程中添加服务引用,在地址栏中添加http://192.168.1.109:8733//MyService/,就能找到该服务进行添加了。

5.使用服务

在引用了服务的工程代码中加入如下语句。

 

MyServiceReference.MyServiceClient mc = new MyServiceReference.MyServiceClient();

就可用mc来调用服务中的函数了。

转载于:https://www.cnblogs.com/lxdonge/p/4133566.html

写一个简单控制台启动的mcv服务相关推荐

  1. 如何搭建python框架_从零开始:写一个简单的Python框架

    原标题:从零开始:写一个简单的Python框架 Python部落(python.freelycode.com)组织翻译,禁止转载,欢迎转发. 你为什么想搭建一个Web框架?我想有下面几个原因: 有一个 ...

  2. 给 asp.net core 写一个简单的健康检查

    给 asp.net core 写一个简单的健康检查 Intro 健康检查可以帮助我们知道应用的当前状态是不是处于良好状态,现在无论是 docker 还是 k8s 还是现在大多数的服务注册发现大多都提供 ...

  3. 用 Go 编写一个简单的 WebSocket 推送服务

    用 Go 编写一个简单的 WebSocket 推送服务 本文中代码可以在 github.com/alfred-zhon- 获取. 背景 最近拿到需求要在网页上展示报警信息.以往报警信息都是通过短信,微 ...

  4. django写一个简单的登陆注册

    要写这个,前提还是需要知道三个知识: 一个是urls.py,它是写我们的路由关系的,之前我写了通过wsgiref写一个简单的服务端,也用到了路由,就是 请求过来的url和视图函数的对应关系. 二是就是 ...

  5. 怎样写一个简单的操作系统?(原文标题:How to write a simple operating system) 分类: 翻译 2011-01-26 01:10 3175人阅读 评论(3) 收藏

    怎样写一个简单的操作系统?(原文标题:How to write a simple operating system) 分类: 翻译2011-01-26 01:10 3175人阅读 评论(3) 收藏 举 ...

  6. ipad php mysql_如何用PHP/MySQL为 iOS App 写一个简单的web服务器(译) PART1

    原文:http://www.raywenderlich.com/2941/how-to-write-a-simple-phpmysql-web-service-for-an-ios-app 作为一个i ...

  7. python123程序设计题说句心里话_用c++写一个简单的计算器程序

    // 050305.cpp : 定义控制台应用程序的入口点. // // 050304.cpp : 定义控制台应用程序的入口点. // //四则运算 #include "stdafx.h&q ...

  8. 用java写一个日历_使用JAVA写一个简单的日历

    JAVA写一个简单的日历 import java.text.DateFormat; import java.text.ParseException; import java.text.SimpleDa ...

  9. ios php mysql实例_如何用PHP/MySQL为 iOS App 写一个简单的web服务器(译) PART1

    原文:http://www.raywenderlich.com/2941/how-to-write-a-simple-phpmysql-web-service-for-an-ios-app 作为一个i ...

最新文章

  1. 大数据目标检测推理管道部署
  2. MySQL57安装与设置
  3. Java多线程生产者消费者调度实现
  4. 阿里云安装mysql5.6_yum安装mysql 5.6-阿里云开发者社区
  5. os.system方法
  6. 电脑端跳转手机版的php代码,帝国CMS电脑端自动跳转到手机端移动端的方法
  7. 基带模型下基于高阶累积量的MFSK信号的调制识别(代码和参考文献见CSDN同名资源)
  8. python分析数据差异的方法_用Python的两种方法进行方差分析
  9. python Image
  10. c语言中int型变量的字节数
  11. 拳王虚拟项目公社:虚拟资源自动化挣钱,空手套白狼的躺赚技术
  12. spyder python下载_Spyder python下载
  13. 多通道波形记录仪自动化计量校准软件NSAT-3070
  14. 从数学归纳法到递归算法
  15. 网站点击流数据分析项目
  16. 一个数据存取类的代码,请高手帮忙分析和指定是否有误!
  17. Apache 安装虚拟主机
  18. 生命不息学习不止 分析几个大牛爱用的在线笔记工具
  19. 《笨方法学 Python 3》31. 作出决定
  20. 实用解析dmp文件内容

热门文章

  1. el-table列宽设置百分比无效;el-table使用min-width设置百分比;el-table百分比设置无效;
  2. VMware 虚拟机占用磁盘空间
  3. [vue] 说说你对vue的mixin的理解,有什么应用场景?
  4. [css] 你有用过vw布局吗?和使用rem有什么区别?
  5. 前端学习(2267)vue造轮子之添加icon
  6. 第一百三十九期:11月数据库排行:排名前三数据库分数暴跌
  7. 实例55:python
  8. js二进制流转Blob对象。Blob对象再转File对象
  9. CSS之文档视图(DocumentView)和元素视图(ElementView)方法
  10. android音频杂音问题_Android 音视频去回声、降噪(Android音频采集及回音消除)(转)...