20190710用控制台启动一个wcf服务
快速阅读
如何用控制台启动一个wcf服务,已经wcf的配置和在类库中如何实现 。
wcf类库
用vs新建一个类库,引用system.ServiceModel

定义接口实现服务契约和操作契约
[ServiceContract]
public interface IUser
{
[OperationContract]
string GetUserInfo();
}
定义方法实现接口,定义服务行为
[ServiceBehavior]
public class User:IUser
{
public string GetUserInfo()
{
return "username";
}
}
控制台启动服务
新建一控制台应用 。引用之前新建的wcf类库,同时在app.config配置wcf服务
<system.serviceModel>
<services>
<service name="hcbServiceB.User">
<!--设置服务节点,服务的地址直接采用基地址,使用basicHttpBinding-->
<endpoint address="" binding="basicHttpBinding" contract="hcbServiceB.IUser">
</endpoint>
<!-- ~1~设置元数据交换节点@1@-->
<!-- <endpoint address="mex" binding="mexHttpBinding" contract="IMetadataExchange">-->
<!-- </endpoint>-->
<host>
<baseAddresses>
<!--服务的基地址用来访问获取元数据-->
<add baseAddress="http://localhost:8057/User"/>
</baseAddresses>
</host>
</service>
</services>
<behaviors>
<serviceBehaviors>
<behavior name="HttpGetEnable">
<!--公开元数据,正是部署时候应该去掉防止元数据泄露-->
<serviceMetadata httpGetEnabled="true"/>
<serviceDebug includeExceptionDetailInFaults="true"/>
</behavior>
</serviceBehaviors>
</behaviors>
<bindings>
<basicHttpBinding>
<binding name="NoneSecurity">
<!--取消安全验证-->
<security mode="None">
</security>
</binding>
</basicHttpBinding>
</bindings>
</system.serviceModel>
启动服务
定义serviceHost, 能过wcf类找到servicehost ,然后启动。
static void Main(string[] args)
{
ServiceHost serivceHost = null;
Type ServiceType = typeof(IUser);
Type[] types = typeof(IUser).Assembly.GetTypes();
foreach (Type type in types)
{
if (type.IsInterface || type.IsEnum || type.IsAbstract || type.IsArray ||
!ServiceType.IsAssignableFrom(type))
continue;
serivceHost = new ServiceHost(type);
serivceHost.Opened += delegate
{
Console.WriteLine("[Info]{0} 启动完毕... ", type);
};
serivceHost.Faulted += delegate { Console.WriteLine("[Warning]{0} 启动出错!", type); };
serivceHost.Open();
}
Console.ReadLine();
}
测试结果


参考:
wcf元数据相关:https://www.cnblogs.com/xfrog/archive/2010/05/16/1736771.html
友情提示
我对我的文章负责,发现好多网上的文章 没有实践,都发出来的,让人走很多弯路,如果你在我的文章中遇到无法实现,或者无法走通的问题。可以直接在公众号《爱码农爱生活 》留言。必定会再次复查原因。让每一篇 文章的流程都能顺利实现。

20190710用控制台启动一个wcf服务的更多相关文章
- WCF学习系列一_创建第一个WCF服务
原创作者:灰灰虫的家http://hi.baidu.com/grayworm WCF开发实战系列一:创建第一个WCF服务 在这个实战中我们将使用DataContract,ServiceContract ...
- WCF开发实战系列一:创建第一个WCF服务
WCF开发实战系列一:创建第一个WCF服务 (原创:灰灰虫的家http://hi.baidu.com/grayworm) 在这个实战中我们将使用DataContract,ServiceContract ...
- 如何建立一个WCF服务并将其发布到IIS上
在我们的软件开发中,经常会连接到数据库中,如果是常规的操作,我们经常会将连接数据库的字符串写在配置文件中,然后去读取数据库的连接字符串,其实这种方式是非常不科学的,这会直接暴露我们的数据库,直接暴露我 ...
- WCF开发实战系列一:创建第一个WCF服务 转
转 http://www.cnblogs.com/poissonnotes/archive/2010/08/28/1811064.html 在这个实战中我们将使用DataContract,Servic ...
- C# 创建一个WCF服务
做代码统计,方便以后使用: app.config配置文件设置: <configuration> <system.serviceModel> <bindings> & ...
- 创建第一个WCF服务
创建WCF服务 1. 新建立空白解决方案,并在解决方案中新建项目,项目类型为:WCF服务应用程序. 2.建立完成后如下图所示: 3.删除系统生成的两个文件IService1.cs与Service1.s ...
- weblogic的安装和注意的问题以及在idea怎么用weblogic启动一个web服务
第一步下载weblogic: 大家可以通过我的网盘下载weblogic,地址如下 https://pan.baidu.com/s/1NkZ_Gd-xfim5YGcdtjYoUw 第二步安装weblog ...
- Tornado 高并发源码分析之一---启动一个web服务
前言: 启动一个tornado 服务器基本代码 class HomeHandler(tornado.web.RequestHandler): #创建 RequesHandler 对象,处理接收到的 h ...
- 关于javaweb 项目 ssm框架 启动tomcat服务器同时启动一个socket服务
1.创建监听类 import javax.servlet.ServletContext; import javax.servlet.ServletContextEvent; import javax. ...
随机推荐
- Tomcat - 启动闪退
版本:Tomcat 9 问题:启动闪退.在控制台中输入"java -version"可以正常输出java的版本信息,但是使用start.bat启动时候闪退. 解决方法:配置系统环境 ...
- JDK的安装(mac)
1.第一步安装brew 教学网址 2.用brew安装jdk. brew update brew cask install java(未翻墙时长很长,大概猴年马月两个小时) 安装完成后就可以执行JAVA ...
- MQTT的websockets应用_转
转自:mosquitto 与websocket 的结合 前言 mosquitto 作为一个消息代理, 客户端与 mosquitto 服务端的通信时基于 MQTT 协议的, 而现在的主流 web 应用时 ...
- cpio命令
RPM包中文件提取 cpio命令主要有三种基本模式:"-o"模式指的是copy-out模式,就是把数据备份到文件库中:"-i"模式指的是copy-in模式,就是 ...
- zabbix Server 4.0 监控TCP的12种状态
zabbix Server 4.0 监控TCP的12种状态 作者:尹正杰 版权声明:原创作品,谢绝转载!否则将追究法律责任. 大家对TCP三次握手比较熟悉了,都知道当发生DOSS攻击时,客户端发送 ...
- c的链表实现
c的链表实现 复习了 单向链表.双向链表 ,代码中注释不多,但基本从函数名字就可以知道函数的作用. 双向链表中的前后节点中的思路是按照linux内核中思路写的. 环境 GCC 7.4.0 单向链表 # ...
- jquery复杂节点获取
jquery.find方法 1 $("div").find(".1").css({"color":"red"," ...
- IDEA实用教程(九)—— 创建Servlet
4. 创建Servlet 1) 第一步 2) 第二步 3) 第三步 4) 第四步 由于新创建的Web项目, 没有Tomcat环境, 所以创建的Servlet会发生导包错误,如下图所示 : 因此我们需要 ...
- Linux 永久改变系统时间
Centos系统,必须同时修改系统时间和硬件时间,才可以保证修改有效,单纯的使用date命令修改系统时间,是立即生效,重启后系统还原.具体操作如下: 1.date {查看目前本地的时间}2.hwclo ...
- Nmap扫描工具实验报告
实验报告 实验内容 通过ping进行操作系统探测 利用Zenmap/Nmap进行TCP connet扫描.TCP SYN扫描和操作系统扫描 实验目的 了解扫描的一般步骤 熟练使用ping命令并能够进行 ...