个人随笔
技术改变世界

【详细】将WCF寄宿到IIS

应群友要求写一篇如何将WCF挂接到IIS中的博文,原本以为是很简单的过程,而这个过程是非常曲折的……下面听我慢慢道来。

我一开始的测试环境是Win10,基于上一篇文章C# 编写WCF简单的服务端与客户端的程序是自宿的方式,修改为寄宿IIS的方式。实际上在Windows 10的IIS版本是10.0,有些配置与之前的IIS7有了细节上的配置变化,我还没来得及去研究,所以在Win10的环境下我花费了非常多的时间,最终也是有问题的,所以我放弃在Win10中寄宿WCF了,有兴趣的朋友可以试试,下面来详细讲解如何将WCF服务寄宿到IIS。

WCF寄宿IIS的环境部署

基础环境:

  • 操作系统:Windows Server 2008 R2(企业版)
  • IIS版本:7.5
  • WCF .NET版本:4.5.1

 

一、安装IIS

Server_Management

1.首先在开始菜单中找到计算机管理,打开它,如图所示。

 

AddRole

2.选择添加角色

 

IIS_Install_1

3.出现角色添加界面后点击下一步后,选择IIS

 

IIS_Install_2

4.为了方便讲解WCF寄宿IIS,这里所有的功能可以全部勾上,一个一个的给大家介绍每个勾选功能的话太麻烦了。

勾选完成后直接下一步、安装即可完成IIS的安装。

 

二、WCF运行环境安装

要使WCF在IIS中正常运行,我们还需要在服务器管理界面中添加相应的功能。

IIS_Install_3

1.在功能菜单中点击右键,然后选择添加功能

 

IIS_Install_4

2.勾选如图所示的功能,然后点击下一步、安装即可。

WCF的基础环境就安装好了,但是还有别忘了安装.NET Framework 4.5.1环境,Windows Server 2008 R2的不包含.NET Framework 4.5.1。

这里顺便发一个官方的.NET 4.5.1的下载链接:ed2k://|file|mu_.net_fx_4_5_1_windows_vistasp2_windows_7sp1_windows_8_windows_server_2008sp2_windows_server_2008r2sp1_windows_server_2012_x86_x64_3009816.exe|70087104|6201D74AFE5FE55A8BC934B5E5BF1E80|/

安装好这些环境,就OK了。

 

三、配置WCF程序,适用于IIS寄宿

1.配置SVC文件

在IIS中对WCF服务的调用体现在对.svc文件的访问上,我们再Servers项目中创建一个文件GetServerInfoService.svc,其内容很简单,如下所示:

<%@ ServiceHost Service="Services.GetServerInfoService" %>

表示服务指向哪一个class,的完整命名。

 

2.配置Web.config文件

我们需要配置WCF服务的web访问方式,以及一些WCF的配置,都将再Web.config文件中,其文件内容如下所示:

<?xml version="1.0" encoding="utf-8" ?>
<configuration>
    <system.serviceModel>
        <behaviors>
            <serviceBehaviors>
                <behavior name="metadataBehavior">
                    <serviceMetadata httpGetEnabled="true"/>
                </behavior>
            </serviceBehaviors>
        </behaviors>
        <services>
            <service behaviorConfiguration="metadataBehavior" name="Services.GetServerInfoService">
                <endpoint binding="wsHttpBinding" contract="Contracts.IGetServerInfo" />
            </service>
        </services>
    </system.serviceModel>
</configuration>

新增了这个两个配置文件后,我们的项目就是这个样子了:

WCF_IIS_Config

然后我们生成下该项目,然后将需要的文件复制到服务器上,这里我在服务器上创建的目录为C:/WCFDemo,我的目录结构如下:

-Bin
 --Contracts.dll
 --Services.dll
-GetServerInfoService.svc
-Web.config

 

相关文件示例:WCFDemo_Server2008

 

四、将WCF程序挂到IIS中

服务器运行WCF的环境部署OK之后,我们就可以开始将WCF程序挂上去了,具体操作如下。

OpenIIS

1.打开IIS。(可以在开始菜单中输入“iis”快速的找到该程序)

 

AddWebSite

2.在面板中的“网站”中单击右键,选择“添加网站”。

 

AddWebSite_1

3.在面板中按照如图方式填写,这里要注意的是“连接为”按钮点进去,我们输入服务器的Administrator账号作为授权,避免发生权限不够的问题。设置好之后点击确定即可。

 

AddWebSite_2

AddWebSite_3

4.在“应用程序池”中双击我们刚刚创建的WCFDemo应用池,修改为.NET Framework v4.0.30319,然后点击确定。

 

AddWebSite_4

此时即可浏览我们的svc文件试试WCF服务是否成功寄宿。看到这个界面,恭喜你, OK 了。

本文示例源码下载:WCFDemo_IIS

附加说明:在整个配置过程中,可能会遇到诸多问题,各种错误信息等,需要耐心网上搜索。 这些问题我总结出来都是环境配置的问题,所以耐心网络上搜素下就好。当然你也可以选择重新安装个全新的Windows Server 2008 操作系统重新配置环境,那肯定是没问题的 :) 。

转载请注明出处王旭博客 » 【详细】将WCF寄宿到IIS

分享到:更多 ()

评论 抢沙发

  • 昵称 (必填)
  • 邮箱 (必填)
  • 网址