• 如何建立一个WCF服务并将其发布到IIS上


        在我们的软件开发中,经常会连接到数据库中,如果是常规的操作,我们经常会将连接数据库的字符串写在配置文件中,然后去读取数据库的连接字符串,其实这种方式是非常不科学的,这会直接暴露我们的数据库,直接暴露我们的用户名和密码,这将为系统的安全性提供了很大的不确定性,特别是在一些金融公司里,这些数据库都是绝密的,对外暴露这些也是非常不安全的行为和方式。

     另外如果在一个项目组中,多人同时开发应用,并且有两个或者两个以上的人员同时访问同一个数据库,那么同样的数据库会建立多次重复的连接,写很多重复的代码,这种开发方式是非常不科学的,特别是在以Prism这种框架下同时开发多个应用时,使用WCF似乎是一个很不错的选择,那么究竟什么是WCF?如何建立WCF程序,并且将WCF发布到IIS上,从而通过IP和端口去访问这个WCF程序呢?

       首先来回答第一个问题:什么是WCF?这里摘录了一些官方的一些简单解释:Windows Communication Foundation(WCF)是由微软开发的一系列支持数据通信的应用程序框架,可以翻译为Windows 通讯开发平台。整合了原有的windows通讯的 .net Remoting,WebService,Socket的机制,并融合有HTTPFTP的相关技术。

       一  如何建立一个WCF应用程序:

       1 打开VS2012,选择WCF==>WCF服务库  

      2 点击确认以后,可以通过看到会生成下列代码。      

      我们可以看到默认生成了一个IService1的接口以及实现该接口的一个类Service1,这代表一个WCF程序,当然我们可以通过右键:添加==》新建项==》WCF程序来添加第二个WCF程序,这个程序也包含一个IService2的接口以及实现该接口的一个类Service2,当然这里怎么去具体写这个服务,这里就不再赘述,这里重点讲述怎么去配置以及发布WCF程序。

         这里重点讲一下怎么去调试WCF程序,右键选择调试,然后启动新实例,会启动一个微软为我们提供的一个调试工具“WCF测试客户端”。     

      启动调试客户端后,我们可以首先在WCF程序中设置断点,然后选择某一个WCF程序的某个函数,然后在右侧1的位置上填入自己设定的参数值,然后再启动代理,进行相关的调试,这里简单介绍一下。

         3  在整个WCF程序确定调试无误后,我们需要将当前的WCF程序进行发布,发布的方法是右键当前程序,单击“发布”然后将其发布到一个合适的物理位置,发布程序后,我们可以看看生成了些什么东西。  

        WCF程序默认是以svc作为后缀名称的,每一个svc文件代表一个WCF程序,还有一个WCF程序的关键信息的配置文件,Web.config文件,这里只是简单介绍一下,配置完成以后,我们就可以将该WCF部署到IIS上,然后通过访问网站的形式来安装部署到IIS上。

      二  安装IIS

      1 依次进入Windows7—》控制面板—》程序—》程序和功能,并选择“打开或关闭Windows功能”

       此处非常重要,注意依次勾选 “Internet 信息服务”目录下面的“常见HTTP错误—》HTTP错误一定要勾选,否则出现错误时不能够提示错误,这个是非常严重的”。最后将万维网服务—》应用程序开发功能—》下面的所有选项全部都勾选上,其它的选项选择默认就可以了,一般在安全性下面选择—》请求筛选,常见HTTP功能下勾选—》Http错误—》静态内容—》默认文档—》目录浏览,性能功能下选中—》静态内容压缩,运行状况和诊断下选中—》HTTP日志—》请求监视器,然后就选择确定。

       2  安装完IIS之后可以通过 计算机—》管理中查看安装的IIS。  

       三   将WCF程序部署到IIS上。

                1  注册WCF组件。

        WCF 4.0 一般默认安装.net Framework 4.0的时候已经安装,但如果先装.net framework 4.0,后装IIS,就会出现问题。需要重新注册WCF4.0,WCF4.0 已经是.net 4.0的一个内部组件,不需要.net3.5 那样麻烦先装windows组件。

              如何看是否已经注册了WCF组件,选择:Default Web Site==》功能视图==》处理程序映射,然后再查看*.svc 后缀的文件是否被svc-Integrated-4.0 或 svc-ISAPI-4.0_64/32bit 程序处理:

      如果没有被处理,则需要注册WCF组件,具体的方法是以管理员权限运行cmd 然后运行下面的命令 C:WindowsMicrosoft.NETFrameworkv3.0Windows Communication  Foundation ServiceModelReg.exe  –i 以进行注册,并安装相应的组件,安装成功后会有相应的提示。     

      2 使用aspnet_regiis.exe注册IIS。

        由于我们使用的.net framework4.0以上的框架开发的应用程序,但是系统只默认注册了.NET Framework v2.0.50727,如果不注册相应的IIS那么我们访问界面时会弹出以下的错误。          

        具体的方法是以管理员权限运行cmd 然后运行下面的命令 C:WindowsMicrosoft.NETFrameworkv4.0.30319 aspnet_regiis.exe  –i 以进行注册。注册成功会出现下面的提示。    

      3 为应用程序添加应用程序池(例如名称为:IGISPool)。

        记住选择.NET Framework的版本为v4.0.30319 托管管道模式选择集成,然后选择确定,那么一个应用程序池就好了。

      4  添加网站。

        

        A  网站的名称可以自己去命名,此处网站的名称为IGIS。

        B  应用程序池选择步骤3中建立的IGIS应用程序池(IGISPool)。

        C  物理路径,选择到“发布服务”这一层,用户在布局的时候只需要将WCF服务(放在发布文件文件夹下面)放到本地的一个路径下面,然后选择到“发布服务”这一文件夹就可以了。

        D  身份验证(当然该步骤可以省略)。

         为了保证当前网站的安全,需要进行权限验证,点击“连接为”,并按照下面的步骤一次输入用户名、密码,然后选择确定。

          确定完成后点击“测试设置”出现下图所示的界面时表示当前身份验证成功。

        E 在完成D步骤后,分配IP,可以选择127.0.0.1作为只在本机运行的网站,也可以设置在局域网中的本机IP,这样别机器就能够通过这个地址来访问当前网站,也可以使用默认的全部未分配。

        F 网站的端口号选择一个本机未被占用的端口号,这里选择8100作为端口号,默认值为80端口。

        G 主机名称选填。

        H 点击确定,这样一个网站就布置好了。

      5  浏览当前网站。

           5.1 选择左侧自己新建的网站IGIS。

           5.2  切换到“内容视图”。        

        5.3 选择其中的任何一个svc文件,右键选择浏览。    

        5.4  如果浏览器出现下面的界面,则表明当前的网站可以正常访问。    


        5.5  本文档是在Window7 32位系统上面部署的文件,如果是在在64位操作系统中部署的该系统,那么还应该设置应用程序池的基本属性中配置相关属性“以允许32位程序集运行”。

     

     

  • 相关阅读:
    Compression algorithm (deflate)
    tcpip数据包编码解析(chunk and gzip)_space of Jialy_百度空间
    What's the difference between the "gzip" and "deflate" HTTP 1.1 encodings?
    gzip压缩算法: gzip 所使用压缩算法的基本原理
    Decompressing a GZip Stream with Zlib
    Frequently Asked Questions about zlib
    how to decompress gzip stream with zlib
    自己动手写web服务器四(web服务器是如何通过压缩数据,web服务器的gzip模块的实现)
    What's the difference between the "gzip" and "deflate" HTTP 1.1 encodings?
    C语言抓http gzip包并解压 失败 C/C++ ChinaUnix.net
  • 原文地址:https://www.cnblogs.com/seekdream/p/5723130.html
Copyright © 2020-2023  润新知