写一个简单控制台启动的mcv服务
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服务相关推荐
- 如何搭建python框架_从零开始:写一个简单的Python框架
原标题:从零开始:写一个简单的Python框架 Python部落(python.freelycode.com)组织翻译,禁止转载,欢迎转发. 你为什么想搭建一个Web框架?我想有下面几个原因: 有一个 ...
- 给 asp.net core 写一个简单的健康检查
给 asp.net core 写一个简单的健康检查 Intro 健康检查可以帮助我们知道应用的当前状态是不是处于良好状态,现在无论是 docker 还是 k8s 还是现在大多数的服务注册发现大多都提供 ...
- 用 Go 编写一个简单的 WebSocket 推送服务
用 Go 编写一个简单的 WebSocket 推送服务 本文中代码可以在 github.com/alfred-zhon- 获取. 背景 最近拿到需求要在网页上展示报警信息.以往报警信息都是通过短信,微 ...
- django写一个简单的登陆注册
要写这个,前提还是需要知道三个知识: 一个是urls.py,它是写我们的路由关系的,之前我写了通过wsgiref写一个简单的服务端,也用到了路由,就是 请求过来的url和视图函数的对应关系. 二是就是 ...
- 怎样写一个简单的操作系统?(原文标题: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) 收藏 举 ...
- 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 ...
- python123程序设计题说句心里话_用c++写一个简单的计算器程序
// 050305.cpp : 定义控制台应用程序的入口点. // // 050304.cpp : 定义控制台应用程序的入口点. // //四则运算 #include "stdafx.h&q ...
- 用java写一个日历_使用JAVA写一个简单的日历
JAVA写一个简单的日历 import java.text.DateFormat; import java.text.ParseException; import java.text.SimpleDa ...
- 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 ...
最新文章
- 大数据目标检测推理管道部署
- MySQL57安装与设置
- Java多线程生产者消费者调度实现
- 阿里云安装mysql5.6_yum安装mysql 5.6-阿里云开发者社区
- os.system方法
- 电脑端跳转手机版的php代码,帝国CMS电脑端自动跳转到手机端移动端的方法
- 基带模型下基于高阶累积量的MFSK信号的调制识别(代码和参考文献见CSDN同名资源)
- python分析数据差异的方法_用Python的两种方法进行方差分析
- python Image
- c语言中int型变量的字节数
- 拳王虚拟项目公社:虚拟资源自动化挣钱,空手套白狼的躺赚技术
- spyder python下载_Spyder python下载
- 多通道波形记录仪自动化计量校准软件NSAT-3070
- 从数学归纳法到递归算法
- 网站点击流数据分析项目
- 一个数据存取类的代码,请高手帮忙分析和指定是否有误!
- Apache 安装虚拟主机
- 生命不息学习不止 分析几个大牛爱用的在线笔记工具
- 《笨方法学 Python 3》31. 作出决定
- 实用解析dmp文件内容
热门文章
- el-table列宽设置百分比无效;el-table使用min-width设置百分比;el-table百分比设置无效;
- VMware 虚拟机占用磁盘空间
- [vue] 说说你对vue的mixin的理解,有什么应用场景?
- [css] 你有用过vw布局吗?和使用rem有什么区别?
- 前端学习(2267)vue造轮子之添加icon
- 第一百三十九期:11月数据库排行:排名前三数据库分数暴跌
- 实例55:python
- js二进制流转Blob对象。Blob对象再转File对象
- CSS之文档视图(DocumentView)和元素视图(ElementView)方法
- android音频杂音问题_Android 音视频去回声、降噪(Android音频采集及回音消除)(转)...