如何建立一個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:\Windows\Microsoft.NET\Framework\v3.0\Windows Communication  Foundation\ ServiceModelReg.exe  –i 以進行注冊,並安裝相應的組件,安裝成功后會有相應的提示。     

  2 使用aspnet_regiis.exe注冊IIS。

    由於我們使用的.net framework4.0以上的框架開發的應用程序,但是系統只默認注冊了.NET Framework v2.0.50727,如果不注冊相應的IIS那么我們訪問界面時會彈出以下的錯誤。          

    具體的方法是以管理員權限運行cmd 然后運行下面的命令 C:\Windows\Microsoft.NET\Framework\v4.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位程序集運行”。

 

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM