IIS 中托管基于TCP绑定的WCF服务

 

IIS 中托管基于TCP绑定的WCF服务


一、创建一个基于TCP绑定的WCF服务

1、创建一个的简单的服务具体代码如下
服务契约定义
namespace SimpleService
{
      // 注意: 使用“重构”菜单上的“重命名”命令,可以同时更改代码和配置文件中的接口名“IHelloService”。
      [ServiceContract]
      public interface IHelloService
      {
          [OperationContract]
          string GetMessage(string message);
      }
}
服务具体方法实现
namespace SimpleService
{
    // 注意: 使用“重构”菜单上的“重命名”命令,可以同时更改代码和配置文件中的类名“HelloService”。
    public class HelloService : IHelloService
    {
        public string GetMessage(string message)
        {
            return message + "\t" + DateTime.Now;
        }
    }
}

 

在Web应用程序中创建SVC文件指向服务代码
 <%@ ServiceHost Language="C#" Debug="true" Service="SimpleService.HelloService" %>
具体配置文件设置如下
  <system.serviceModel>
    <services>
      <service name="SimpleService.HelloService" behaviorConfiguration="HttpGetEnable">
        <!--设置绑定协议为TCP协议-->
        <endpoint address="" bindingConfiguration="NoneSecurity" binding="netTcpBinding" contract="SimpleService.IHelloService">
        </endpoint>
        <!--源数据访问节点-->
        <endpoint address="mex" binding="mexHttpBinding" contract="IMetadataExchange">
        </endpoint>
      </service>
    </services>
    <bindings>
      <netTcpBinding>
        <!--允许端口共享,使其他基于TCP绑定的WCF服务也能使用808端口-->
        <binding name="NoneSecurity" portSharingEnabled="true">
          <!--取消安全验证-->
          <security mode="None">
          </security>
        </binding>
      </netTcpBinding>
    </bindings>
    <behaviors>
      <serviceBehaviors>
        <!--允许通过http协议获取源数据-->
        <behavior name="HttpGetEnable">
          <serviceMetadata httpGetEnabled="true"/>
          <serviceDebug includeExceptionDetailInFaults="true"/>
        </behavior>
      </serviceBehaviors>
    </behaviors>
    <!--启用多站点绑定,方便使用IP地址或者域名访问-->
    <serviceHostingEnvironment aspNetCompatibilityEnabled="true" multipleSiteBindingsEnabled="true">
    </serviceHostingEnvironment>
  </system.serviceModel>
  <system.webServer>
    <!--启用目录浏览方便使用-->
    <directoryBrowse enabled="true"/>
  </system.webServer>
解决方案具体配置如下

二、设置 IIS增加非Http协议支持

打开控制面——选择大图标——程序和功能——启用或关闭windows功能——勾选.net3.5中非Http激活,如果是win8/8.1/10则需要勾选.net4.6中所有的高级功能

在IIS中创建要托管的站点目录指向WCF服务Web宿主所在目录

增加站点非HTTP绑定支持

右键选择站点——编辑绑定——添加——类型选择net.tcp——绑定信息808:* 


设置站点支持net.tcp协议,右键站点——管理网站——高级设置——已启用的协议——添加net.tcp 

三、最终效果


在浏览器中访问站点的SVC文件,效果如下图


源数据中可以看到已经是net.tcp绑定

在WCFTestClient中调用服务

添加服务地址


调用服务


服务客户端配置文件信息

后记

在正式使用中应将客户端配置文件中的主机地址替换为主机的IP地址

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

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值