zoukankan      html  css  js  c++  java
  • 控制台中寄宿WCF服务

    一、首先创建一个类库,用来定义WCF服务

    修改服务代码定义,具体代码如下

    	 // 注意: 使用“重构”菜单上的“重命名”命令,可以同时更改代码和配置文件中的接口名“IHelloService”。
        [ServiceContract]
        public interface IHelloService
        {
            [OperationContract]
            string GetMessage(string message);
        }
    

    	 // 注意: 使用“重构”菜单上的“重命名”命令,可以同时更改代码和配置文件中的类名“HelloService”。
        public class HelloService : IHelloService
        {
            public string GetMessage(string message)
            {
                return message + "@" + DateTime.Now;
            }
        }
    

    二、创建一个控制台项目,用来承载WCF服务

    1、首先添加对服务类库的引用,并添加引用System.Service.Model

    2、修改配置文件,在 <system.serviceModel> </system.serviceModel>节点中设置服务相关节点信息、绑定信息以及基地址,具体代码如下

    	  <system.serviceModel>
        <services>
          <service name="SimpleService.HelloService">
            <!--设置服务节点,服务的地址直接采用基地址,使用basicHttpBinding-->
            <endpoint address="" binding="basicHttpBinding" contract="SimpleService.IHelloService">
            </endpoint>
            <!--设置元数据交换节点-->
            <endpoint address="mex" binding="mexHttpBinding" contract="IMetadataExchange">
            </endpoint>
            <host>
              <baseAddresses>
                <!--服务的基地址用来访问获取元数据-->
                <add baseAddress="http://localhost:8057/HelloService"/>
              </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>
    

    3、启动服务

    在main方法中加入如下代码启动服务

     using (ServiceHost host = new ServiceHost(typeof(HelloService)))
     {
             host.Open();
    
            Console.WriteLine("WCF 已经启动@" + DateTime.Now);
    
            Console.ReadKey();
    }
    

    服务启动后效果如下图

    如果出现如下异常信息,只要以管理员身份重新启动VS并启动服务即可

  • 相关阅读:
    【microstation CE二次开发】不打开microstation,以COM方式启动Microstation
    【microstation CE二次开发】环境搭建
    Node安装与卸载命令汇总
    Maven进行clean时报错,解决方法
    Django 报ckeditor/skins/moono/skin.js 404
    Handler dispatch failed; nested exception is java.lang.AbstractMethodError: Method com/mchange/v2/c3p0/impl/NewProxyResultSet.isClosed()Z is abstract
    精准测试系列分享之一:JaCoCo 企业级应用的优缺点分析
    Java 中常见的细粒度锁实现
    JVM 的运行时数据区域分布
    Java 细粒度锁续篇
  • 原文地址:https://www.cnblogs.com/enternal/p/4784726.html
Copyright © 2011-2022 走看看