菜菜从零学习WCF四(承载服务)

简介: 有图有真相,如果你也是菜鸟那就也来看看我这个菜鸟一步一步的实现吧。 我们都知道WCF在运行的时候必须自己提供宿主来承载服务。WCF 本身没有附带宿主,就需要我们自己来依附于宿主而承载WCF服务。 那么现在主要有几种方式来为我们提供WCF的承载呢? 1.在IIS中承载 2.在Windows 进程激活服务(WAS)中承载 3.在托管应用程序中承载(自承载) 第一种在IIS中承载   WCF可以方便的通过IIS承载。

有图有真相,如果你也是菜鸟那就也来看看我这个菜鸟一步一步的实现吧。

我们都知道WCF在运行的时候必须自己提供宿主来承载服务。WCF 本身没有附带宿主,就需要我们自己来依附于宿主而承载WCF服务。

那么现在主要有几种方式来为我们提供WCF的承载呢?

1.在IIS中承载

2.在Windows 进程激活服务(WAS)中承载

3.在托管应用程序中承载(自承载)

第一种在IIS中承载

  WCF可以方便的通过IIS承载。此承载模型与ASP.NET和ASP.NET Web Service使用的模型类似。

  可在以下操作系统上的IIS承载WCF

  --Windows XP  SP2上的IIS 5.1

  --Windows Server 2003 上的IIS6.0

  --Windows Vista(Windows 7) 和Windows Server 上的IIS 7.0

  --IIS 7.0

    -- 用Windows 进程激活服务(WAS)来允许通过HTTP之外的协议进行激活或网络通信。此环境适合开发可通过WCF支持的任何网络协议(HTTP 、net.tcp、net.pipe和net.msmq)进行通信的WCF服务

  --IIS承载的好处

    -可像处理任何其他任何类型的IIS应用程序(包括ASP.NET应用程序和ASMX)一样,部署和管理IIS中承载的WCF服务。

    -IIS提供进程激活、运行状况管理和回收功能以提高承载的应用程序的可靠性。

    -像ASP.NET一样,ASP.NET中承载的WCF服务可以利用ASP.NET共享宿主模型。在次模型中,多个应用程序驻留在一个公共辅助进程中以提高服务器密度和可伸缩性。

    -IIS中承载的WCF服务与ASP.NET2.0使用相同的动态编译模型,该模型简化了承载的服务的开发和部署。

    -当决定在IIS中承载WCF服务时,一定要记住IIS5.1和IIS6.0仅限于HTTP通信。

 

  --部署IIS承载的WCF服务

    -1.要确保正确安装IIS和WCF以及WCF激活组建。

  可在控制面板--程序---程序功能--打开或关闭Windows功能中开启

环境都准备好了,下面我们进行一下实例首先我们打开VS,我这里使用的是VS2010,暂时就使用VS2010来进行

首先打开VS2010新建项目,

选择WCF服务应用程序,添加项目名称后,就会自动生成相应文件

将Iservice1.cs和Service1.svc 以及Service1.cs三个文件中的代码合并为一个文件中Service.svc

  

<%@ ServiceHost Language="C#" Debug="true" Service="WCFIISService.Service" %>
using System;
using System.Runtime.Serialization;
using System.ServiceModel;
using System.ServiceModel.Web;
using System.Text;

namespace WCFIISService
{
    // 注意: 使用“重构”菜单上的“重命名”命令,可以同时更改代码、svc 和配置文件中的类名“Service1”。
    public class Service: IService
    {
        public string GetData(int value)
        {
            return string.Format("You entered: {0}", value);
        }
    }

    [ServiceContract]
    public interface IService
    {
        [OperationContract]
        string GetData(int value);
        // TODO: 在此添加您的服务操作
    }
}

  

再打开Web.config文件找到节点system.serviceModel可以发现应该是没有services节点,也就是我们需要对服务进行相应的配置。

    <services>
      <service name="WCFIISService.Service" behaviorConfiguration="WCFBehavior">
        <endpoint address="" binding="wsHttpBinding" contract="WCFIISService.IService"></endpoint>
        <endpoint address="mex" binding="mexHttpBinding" contract="IMetadataExchange"></endpoint>
      </service>
    </services>

  

整个配置文件的代码如下

<?xml version="1.0" encoding="utf-8"?>
<configuration>

  <system.web>
    <compilation debug="true" targetFramework="4.0" />
  </system.web>
  <system.serviceModel>
    <services>
      <service name="WCFIISService.Service" behaviorConfiguration="WCFBehavior">
        <endpoint address="" binding="wsHttpBinding" contract="WCFIISService.IService"></endpoint>
        <endpoint address="mex" binding="mexHttpBinding" contract="IMetadataExchange"></endpoint>
      </service>
    </services>
    <behaviors>
      <serviceBehaviors>
        <behavior name="WCFBehavior">
          <!-- 为避免泄漏元数据信息,请在部署前将以下值设置为 false 并删除上面的元数据终结点 -->
          <serviceMetadata httpGetEnabled="true"/>
          <!-- 要接收故障异常详细信息以进行调试,请将以下值设置为 true。在部署前设置为 false 以避免泄漏异常信息 -->
          <serviceDebug includeExceptionDetailInFaults="false"/>
        </behavior>
      </serviceBehaviors>
    </behaviors>
    <serviceHostingEnvironment multipleSiteBindingsEnabled="true" />
  </system.serviceModel>
 <system.webServer>
    <modules runAllManagedModulesForAllRequests="true"/>
  </system.webServer>
  
</configuration>

  

 

进行相应配置之后,下面进行编译项目,查看项目所在文件夹,找到Web.Config文件和Service1.svc文件。

  打开IIS并进行添加应用程序

添加好之后,将刚刚的两个文件web.confg和service.svc复制到下面

打开目录浏览,然后右击启用,现在就可以浏览服务了。

现在就可以证明服务发布成功了。

这是关于IIS承载WCF服务示例代码

关于

在Windows 进程激活服务(WAS)中承载后面再补上

 

 

目录
相关文章
|
9月前
|
前端开发
WCF更新服务引用报错的原因之一
WCF更新服务引用报错的原因之一
|
8月前
|
C# 数据安全/隐私保护
c#如何创建WCF服务到发布(SqlServer版已经验证)
c#如何创建WCF服务到发布(SqlServer版已经验证)
38 0
|
8月前
|
安全 数据库连接 数据库
WCF服务创建到发布(SqlServer版)
在本示例开始之前,让我们先来了解一下什么是wcf? wcf有哪些特点? wcf是一个面向服务编程的综合分层架构。该架构的项层为服务模型层。 使用户用最少的时间和精力建立自己的软件产品和外界通信的模型。它使得开发者能够建立一个跨平台的安全、可信赖、事务性的解决方案。且能与已有系统兼容写作。 简单概括就是:一组数据通信的应用程序开发接口。
58 0
|
9月前
|
网络协议 网络架构 Windows
框架学习——WCF框架
框架学习——WCF框架
230 0
Visual Studio 2022 创建 WCF服务 找不到
Visual Studio 2022 创建 WCF服务 找不到
|
C++
WCF基础教程(二)——解析iis8和iis8.5+VS2013发布wcf服务问题
WCF基础教程(二)——解析iis8和iis8.5+VS2013发布wcf服务问题
102 0
WCF基础教程(二)——解析iis8和iis8.5+VS2013发布wcf服务问题
WCF使用纯代码的方式进行服务寄宿
服务寄宿的目的是为了开启一个进程,为WCF服务提供一个运行的环境。通过为服务添加一个或者多个终结点,使之暴露给潜在的服务消费,服务消费者通过匹配的终结点对该服务进行调用,除去上面的两种寄宿方式,还可以以纯代码的方式实现服务的寄宿工作。
850 0
|
Windows
WCF服务寄宿到IIS
一.WCF简介: Windows Communication Foundation(WCF)是由微软开发的一系列支持数据通信的应用程序框架,可以翻译为Windows 通讯开发平台。整合了原有的windows通讯的 .net Remoting,WebService,Socket的机制,并融合有HTTP和FTP的相关技术。
1048 0
WCF服务自我寄宿
WCF服务的寄宿方式 WCF寄宿方式是一种非常灵活的操作,可以寄宿在各种进程之中,常见的寄宿有: IIS服务、Windows服务、Winform程序、控制台程序中进行寄宿,从而实现WCF服务的运行,为调用者方便、高效提供服务调用。
996 0
|
安全 C#
WCF技术我们应该如何以正确的方式去学习掌握
一、WCF技术我该如何学习?       阿笨的回答是:作为初学者的我们,那么请跟着阿笨一起玩WCF吧,阿笨将带领大家如何以正确的姿势去掌握WCF技术。由于WCF技术知识点太多了,就纯基础概念性知识都可以单独出一本书来讲解,本次分享课程《C#面向服务编程技术WCF从入门到实战演练》开课之前,阿笨还是希望从没了解过WCF技术的童鞋们提前先了解一下WCF技术,至少要明白WCF技术的ABC三要素分别指的是什么。
1172 0