在我們的軟件開發中,經常會連接到數據庫中,如果是常規的操作,我們經常會將連接數據庫的字符串寫在配置文件中,然后去讀取數據庫的連接字符串,其實這種方式是非常不科學的,這會直接暴露我們的數據庫,直接暴露我們的用戶名和密碼,這將為系統的安全性提供了很大的不確定性,特別是在一些金融公司里,這些數據庫都是絕密的,對外暴露這些也是非常不安全的行為和方式。
另外如果在一個項目組中,多人同時開發應用,並且有兩個或者兩個以上的人員同時訪問同一個數據庫,那么同樣的數據庫會建立多次重復的連接,寫很多重復的代碼,這種開發方式是非常不科學的,特別是在以Prism這種框架下同時開發多個應用時,使用WCF似乎是一個很不錯的選擇,那么究竟什么是WCF?如何建立WCF程序,並且將WCF發布到IIS上,從而通過IP和端口去訪問這個WCF程序呢?
首先來回答第一個問題:什么是WCF?這里摘錄了一些官方的一些簡單解釋:Windows Communication Foundation(WCF)是由微軟開發的一系列支持數據通信的應用程序框架,可以翻譯為Windows 通訊開發平台。整合了原有的windows通訊的 .net Remoting,WebService,Socket的機制,並融合有HTTP和FTP的相關技術。
一 如何建立一個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位程序集運行”。