zoukankan      html  css  js  c++  java
  • WCF 基于TCP的服务在IIS7中寄宿

    参考博文:

    使用 WAS 扩展 HTTP 之外的 WCF 服务

    如何进行基于非HTTP的IIS服务寄宿

    HowTo: netTcpBinding on IIS and things to remember

    将使用netTcp绑定的WCF服务寄宿到IIS7上全记录

    在上面这些参考的博文中,都有提到如何部署,下面再结合个人实践重复一遍:

    目标服务器:IIS7,Windows 7

    1. 安装WAS (Windows Process Activation Service)服务和WCF的HTTP 和Non-Http的激活组件,默认情况是都没有安装的。

    1.1:WAS: Win+R——输入: OptionalFeatures.exe ,出现”打开或关门Window功能”的窗口,如下图

    clip_image001

    将(Windows Process Activation Service下的组件打上勾。

    1.2:WCF HTTP和No HTTP激活组件:在上图中将下面的组件也打上勾:

    clip_image002

    点击确定,开始上面选择的组件安装。

    2. IIS注册asp.net 4.0

    找到Visual Studio 命令提示(2010),输入:aspnet_regiis –i

    clip_image004

    3. 启动服务: NetTcpPortSharing ,NetTcpActivator ,Windows Process Activation Service

    Win+R——》输入services.msc,出现服务管理窗口,启动上面提到的服务(如果没有启动):

    clip_image006

    4. 编写WCF应用程序

    5. 部署

    l 在IIS7中新建网站 TCPDemo,执行编写WCF应用程序的解决方案文件夹

    l 给网站添加net.tcp的绑定,如下图:

    clip_image008

    绑定信息:809:* 表示从809进来的任何请求都处理

    l 添加应用程序,指向我们的服务项目

    l 为新添加的应用程序,启用net.tcp协议,如下图:

    clip_image010

    l 浏览服务,如下(用net.tcp提供服务元数据):

    clip_image012

    l 添加服务引用:

    clip_image014

    到此基本完成。

    遇到过的问题:

    1, 在浏览器中浏览服务时,提示:

    Could not load type 'System.ServiceModel.Activation.HttpModule' from assembly 'System.ServiceModel, Version=3.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089

    原因:在安装WAS 和WCF 的Http 或non-Http激活组件时,将IIS的.net framework版本更新为3.0的版本了;而我们的wcf应用程序是在.net framework 4.0上创建的。

    解决方法:IIS注册asp.net4.0.

    2, 在浏览器中,浏览服务时:

    找不到具有绑定 NetTcpBinding 的终结点的与方案 net.tcp 匹配的基址。注册的基址方案是 [http]

    该现象的原因时:没有给网站添加net.tcp的绑定。

    3, 添加服务应用时提示:

    无法调度消息,因为终结点地址“net.tcp://szc0292:809/TCP_IIS/Service1.svc/mex”上的服务对该地址的协议不可用。

    我的遇到该现象的原因是:

    l 没有改网站下的应用程序启用net.tcp协议

    l NetTcpPortSharing ,NetTcpActivator 2个服务在不同的进程里面,一个指向3.0的SMSvcHost.exe,一个指向的4.0的SMSvcHost.exe;解决方法:将指向3.0 的SMSvcHost.exe服务路径该为何4.0的;WIN +R—》cmd——》输入:

    Sc config NetTcpActivator binpath= "C:WindowsMicrosoft.NETFrameworkv4.0.30319SMSvcHost.exe";在重新启动NetTcpActivator服务,问题解决。

    4,不能将服务部署在网站上,必须在网站下新建应用程序执行要部署的TCP服务。

    代码下载:http://files.cnblogs.com/webJingGao/TCP%40IIS.rar

  • 相关阅读:
    原创 动态卷积
    BZOJ1565 植物大战僵尸
    BZOJ1143 [CTSC2008] 祭祀river
    BZOJ3438 小M的作物
    BZOJ3144 [HNOI2013]切糕
    BZOJ2039 [2009国家集训队]employ人员雇佣
    BZOJ1066[SCOI2007]蜥蜴
    BZOJ3874 codevs3361 宅男计划
    Codeforces Round #343 (Div. 2)
    [转]后缀自动机(SAM)
  • 原文地址:https://www.cnblogs.com/webJingGao/p/3228066.html
Copyright © 2011-2022 走看看