將WCF寄宿在IIS上是WCF的一種寄宿方式,但是一直找不到在IIS上寄宿TCP的方法,由於先前使用的是IIS6,所以一直報net.tcp不能解析..上網查閱了很多資料發現似乎只有IIS7支援對TCP等其他通訊方式的寄宿(WAS),下載了虛擬機器裝上Win7準備試一把(本來準備裝Win2008可是公司只有DC版R2的鏡像檔案,裝上之後怎麼都啟用不了.....)
0.安裝IIS,FrameWork,WAS
這些都是Windows組件裡添加的,就不多說了
1.配置IIS支援對WCF的寄宿
這裡是第一個糾結點,如果配置不好,別說TCP,連HTTP都寄宿不上。一般情況下,如果機器上已經安裝IIS,在安裝.Net FrameWork時便會自動提示你把IIS對WCF的支援也裝上,這就沒有問題,不巧的是,如果你先裝的是FrameWork,那恭喜你了,要手工執行一次IIS對WCF的支援安裝(ServiceModelReg),這個檔案隱藏在你安裝的Framework工具中,一般使用路徑 Framework\V3.0\Windows Communication Foundation目錄下能找到(這裡使用3.0,其他版本請自行參照,不過命令的參數會有變化,請自行糾結)
2.配置IIS節點,使其支援TCP
開啟IIS管理器(由於第一次使用Win7,一直找不到運行在哪....又鬱悶了一下),佈建網站的綁定,追加上net.tcp,綁定資訊設定為808:*,算是配置了Address,在web.config中tcp的address也使用空即可
3.按說這樣就可以了,IIS寄宿了TCP的服務,運氣好得觀眾此時應該可以實現想要的功能了,如果誰的運氣不夠好,請繼續向下看
4.如果不是使用虛擬機器,就不用看本條了,本人使用的是虛擬機器,所以調試WCF必定要虛擬機器和主機互連,但是上網看了看,方法基本都是使用橋接,然後將虛擬機器和主機分配在一個網段,但是這明顯不符合在公司測試的要求啊,主機的IP不能改(否則就上不了網....),虛擬機器IP也不能改(不給分配IP...),想來想去就想到能不能使用虛擬網卡,可是剛建好虛擬網卡,主機的外網就被公司IT管理的給斷了...至於這種方法能不能實現互連,請各位自行測試,測試好了麻煩告知在下,最後不得已,發現虛擬機器的網路通訊方式除了使用橋接,NET,Only..之外竟然還有一種方式,大喜...於是,將其指向虛擬機器建立的VMnet8,再重新設定一下虛擬機器的IP資訊,網關指向net8的IP,果然內外機能通訊了..
5.如果你已經熟練使用IIS7發布Web資訊,這條也不用看了。本人由於是新裝的Win7,又是第一次使用IIS7所以遇到了一個很經典的問題,虛擬機器內能夠訪問到發布的服務,可是外機訪問不到發布的服務,糾結之後感覺可能是許可權的問題,於是開啟虛擬機器的來賓賬戶,發現還是不行,然後設定防火牆,開啟http的檔案訪問,終於成功看到了wsdl資訊.....
以上,本人的TCP服務終於在IIS上寄宿成功了,如果哪位想知道怎麼發布TCP,怎麼寄宿IIS這種正統的問題..額,這個網上資料比較多,就不說了,個人比較推薦Artech的系列