zoukankan      html  css  js  c++  java
  • 如何建立一个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位程序集运行”。

     

     

  • 相关阅读:
    c# 发送邮件
    C# Android 开发中使用 Sqlite.NET ORM
    VS2015 使用 Visual Studio Emulator For Android 调试无法命中断点的解决办法?
    asp.net 下载文件
    ScriptManager 发送错误到客户端
    C# 比较两个路径是否指向同一对象
    IIS 集成模式 导致 AjaxPro 无法正常运行
    C#编码、解码与ASP.NET编码解码对应函数
    FTP 命令连接(带用户名和密码)方法
    医学-药物-大环内酯类-阿奇霉素(Azithromycin)
  • 原文地址:https://www.cnblogs.com/seekdream/p/5723130.html
Copyright © 2011-2022 走看看