控制台中寄宿WCF服务

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

674508-20150906103619576-1960809475.png

674508-20150906103638373-1869901754.png

修改服务代码定义,具体代码如下
     // 注意: 使用“重构”菜单上的“重命名”命令,可以同时更改代码和配置文件中的接口名“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

674508-20150906104014764-1674067080.png

674508-20150906103707217-530571009.png

674508-20150906103729576-1125447565.png

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();
}
服务启动后效果如下图

674508-20150906103824982-308028049.png

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

674508-20150906103844404-1423560274.png

转载于:https://www.cnblogs.com/enternal/p/4784726.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值