使用IIS承载WCF服务

作者:jiankunking 出处:http://blog.csdn.net/jiankunking

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

2、WCF可以在以下操作系统上的IIS版本上承载

  • Windows XP SP2上的IIS 5.1
  • Windows Server 2003上的IIS 6.0
  • Windows Server 2008或者Windows Vista或者Windows 7上的IIS 7.0
  • 以及IIS后续版本

小注:

3、在IIS 7.0中提供了一种新的承载服务方式即WAS(Windows Process Activation Service,Windows进程激活服务),使用WAS来承载WCF允许HTTP之外的协议进行激活和网络通信。此环境适合开发可通过WCF支持的任何网络协议(包括HTTP、net.tcp、net、.pipe和net.msmq)进行通信的WCF服务。

在WAS宿主中,可以使用WAS工作进程中的功能,如自动激活服务、健康监控和进程。
要使用WAS宿主,只需创建一个Web站点和工个.svc文件,其中的ServiceHost声明包含服务类的语言和名称。

下面的代码使用 Service1类。另外,还必须指定包含服务类的文件。这个类的实现方式与定义WCF服务库的方式相同。 

<%@ ServiceHost Language="C#" Debug="true" Service="Service1" CodeBehind="Service1.svc.cs" %>   

这不就是平时部署的.svc文件嘛

例如:

4、使用IIS承载的好处:

  • 可以向处理其他任何类型的IIS应用程序一样,部署和管理IIS中承载的WCF服务。
  • IIS提供进程激活、运行状态管理和回收功能以提高承载的应用程序的可靠性。
  • 像ASP.NET一样,ASP.NET中承载的WCF服务可以利用ASP.NET共享宿主模型,在此模型中,多个应用程序驻留在一个公共辅助进程中以提高服务器密度和可伸缩性。
  • IIS中承载的WCF服务与ASP.NET2.0使用相同的动态编译模型,该模型简化了承载服务的开发和部署。
  • IIS承载WCF服务时,IIS5.1和IIS6.0仅限于HTTP通信。

5、WCF具体写法及部署与IIS在此就不重复演示,具体案例可以参考:

WCF 部署在IIS上

WCF 入门教程一(动手新建第一个WCF程序并部署)

WCF 入门教程二

小注:

1、个人感觉有了锤子就没必要用手敲钉子了,所以搞WCF的时候,使用Visual Studio吧,没必要用文本文件去创建svc等等的文件。

比如说客户端应用程序需要 一 个代理来访问服务。给客户端创建代理就有3种方式 :
● Visual Studio添加服务引用 —— 这个实用程序会从服务的元数据中创建代理类。
● ServiceModel元数据实用工具svcutil.exe —— 使用svcutil实用程序可以创建代理类。该实用程序从服务中读取元数据 ,以创建代理类。
● ChanneldFactory类 —— 这个类由svcutil实用程序生成的代理使用 ,然而,它也可以用于以编程方式创建代理。

        个人还是感觉 Visual Studio比较自动化一些

2、据说部署WCF,需要激活WCF HTTP激活组件,具体激活方式如下:

安装完成后,可以在:IIS管理器----处理程序映射中看到:svc-Integrated 项,说明安装成功了

但是有个问题就是,我部署WCF时候,么有激活这个服务,为啥WCF也能运行呢?希望有知道的朋友帮忙解答一下,谢谢。

时间: 2024-11-19 01:58:22

使用IIS承载WCF服务的相关文章

wcf-部署在IIS上WCF服务执行服务端程序问题

问题描述 部署在IIS上WCF服务执行服务端程序问题 WCF部署在IIS8.0上 其中一个服务是远程执行服务器上命令,服务器端的代码如下: public string RunCommand(String cmd) { Process p = new Process(); p.StartInfo.FileName = "cmd.exe"; p.StartInfo.Arguments = "/c " + cmd; p.StartInfo.UseShellExecute

调用发布 的wcf-ajax调用发布IIS的wcf服务 400

问题描述 ajax调用发布IIS的wcf服务 400 创建WCF服务项目,用WCF应用程序作为宿主加载,发布IIS,ajax 用ip加方法名访问,一直出现错误,传说中好像跨域了,那位大神有demo,或是遇到过的,求解决办法 本人没有金币,先对不住了 解决方案 跨域不是400错误,400错误是服务器wcf没配置好,导致url找不到 看这个:http://www.cnblogs.com/leslies2/archive/2011/01/26/1934889.htmlhttp://blog.csdn.

WCF技术剖析之四:基于IIS的WCF服务寄宿(Hosting)实现揭秘

通过<再谈IIS与ASP.NET管道>的介绍,相信读者已经对IIS和ASP.NET的请求处理管道有了一个大致的了解,在此基础上去理解基于IIS服务寄宿的实现机制就显得相对容易了.概括地说,基于IIS的服务寄宿依赖于两个重要的对象:System.ServiceModel.Activation.HttpModule和System. ServiceModel.Activation.HttpHandler. 一.通过HttpModule实现服务寄宿 在默认的情况下,基于IIS的服务寄宿是通过一个特殊的

使用IIS发布WCF服务

WCF服务库在WCF4.0之前是不支持无svc部署的,所以单独的WCF类库无法在IIS里托管. 你需要创建一个WCF服务程序,里面引用你的WCF服务库,这里会有一个svc文件指定类库. 另外IIS里部署WCF服务,和部署一般的网站一样,但是IIS5应该只支持http协议. 可以参考我这个文章的一些步骤.记得设置Framework的版本. IIS宿主的主要不利在于,你仅仅可以在IIS5和IIS6上使用HTTP传输数据:而且当使用IIS5时,你仅可以使用80端口. 本人转载:http://hi.ba

承载和使用WCF服务

简介 如果企业依赖于面向服务的体系结构,就必须确保服务能够正常可靠的运行.应用程序可靠性背后最重要的动因是在哪里托管服务以及如何托管服务.在考虑托管服务时,您必须事先考虑几个问题:服务有哪些可用性方面的要求?如何管理和部署服务?是否需要提供对旧版本服务的支持? 了解如何满足这些业务要求对于开发成功的服务是至关重要的.在第 3 章中您将了解到,必须自己提供宿主来承载服务.Windows Communication Foundation (WCF) 本身没有附带宿主,而是提供了一个被称为 Servi

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

本文以 Windows Server 2008 的预发布版为基础.文中包含的所有信息均有 可能变更. 本文讨论: IIS 6.0 和 IIS 7.0 的体系结构和进程模型 IIS 6.0 如何承载 Web 服务 用 IIS 7.0 承载可靠的 WCF 服务 Windows Process Activation Service (WAS) 工作原理 支持非 HTTP 协议 本文使用了以下技术: IIS,WAS 目录 IIS 6.0 体系结构和进程模型 IIS 7.0 和 WAS 深入了解 WAS

windows-WINDOWS服务承载WCF,能用HTTPS吗?

问题描述 WINDOWS服务承载WCF,能用HTTPS吗? WINDOWS服务承载WCF,能用HTTPS吗? 有示例代码和配置文件最好. 解决方案 当然可以支持https. http://www.cnblogs.com/coolkiss/archive/2010/07/14/1777077.html 解决方案二: 完全可以,这个只要配置下endpoints就可以 具体做法http://www.cnblogs.com/bearhb/archive/2012/07/02/2573236.htmlht

WCF技术剖析之五:利用ASP.NET兼容模式创建支持会话(Session)的WCF服务

在<基于IIS的WCF服务寄宿(Hosting)实现揭秘>中,我们谈到在采用基于IIS(或者说基于ASP.NET)的WCF服务寄宿中,具有两种截然不同的运行模式:ASP.NET并行(Side by Side)模式和ASP.NET兼容模式.对于前者,WCF通过HttpModule实现了服务的寄宿,而对于后者,WCF的服务寄宿通过一个HttpHandler实现.只有在ASP.NET兼容模式下,我们熟悉的一些ASP.NET机制才能被我们使用,比如通过HttpContext的请求下下文:基于文件或者U

[老老实实学WCF] 第三篇 在IIS中寄存服务

原文:[老老实实学WCF] 第三篇 在IIS中寄存服务 老老实实学WCF 第三篇 在IIS中寄宿服务   通过前两篇的学习,我们了解了如何搭建一个最简单的WCF通信模型,包括定义和实现服务协定.配置服务.寄宿服务.通过添加服务引用的方式配置客户端并访问服务.我们对WCF的编程生命周期有了一个最基本的了解.   在前两篇中演示的例子,一定要力求背着做下来,包括源程序.配置文件都要背着一行行的手写下来,这样才能有深刻的体会.WCF的知识零散复杂,必须扎扎实实的学习和练习.如果你还没有做到了然于胸,现