win7+VS2010下的IIS寄宿服務

之前看的Artech大師的《我的WCF之旅一》。在步驟六的通過IIS寄宿服務那裏有一些不明白。

 

剛開始覺得在類庫下做web.config有點擔心在IIS裏的實現效果。所以決定新建一個WCF服務應用程序來完成。

 

剛開始在IIS裏部署好IIS虛擬目錄路徑,可是怎麼也訪問不到元數據,正好看到了sjnswcf學習筆記,按照其創建了在項目的WCF服務應用程序項目庫下將已有的Service1.svc.cs裏修改爲繼承CalculatorService類。而且這個web項目端要引用Services.dll。web.config我還是按照Artech大師的沒改動。WCF服務應用程序我用了VS來部署。路徑就是IIS虛擬目錄路徑,重寫應用程序根URL的選項勾上。重新編譯一下就OK了。sjnswcf學習筆記到這裏也就結束了。至於Artech大師要求的Windows授權認證,win7裏也很簡單,IIS裏打開"授權認證",然後把windows身份驗證的那欄啓用就可以了。可是,在IIS端運行時出現了:

 

處理程序“PageHandlerFactory-Integrated”在其模塊列表中有一個錯誤模塊“ManagedPipelineHandler”的錯誤。

 

百度一下才知道“vs2010默認的是4.0框架,4.0的框架是獨立的CLR需要用aspnet_regiis註冊4.0框架”。

 

於是,打開CMD,進入C:\Windows\Microsoft.NET\Framework\v4.0.30319目錄。運行aspnet_regiis.exe-i完成aspnet_regiis4.0框架註冊。之後重新啓動了IIS裏的應用程序池和WCF站點。再打開IE瀏覽器輸入:http://localhost/WcfService/CalculatorService.svc。熟悉的寄宿服務頁面出現啦,點擊上面的鏈接就可以打開元數據了。如果你這時啓動VSWCF服務應用程序(Client爲啓動項),就可以看到看到客戶端的運行結果了。

 

後記:我發現如果你更改了你VS裏的WCFIIS寄宿地址或項目後,IIS需要重新啓動。如果你VS裏客戶端的運行報不支持內容類型的錯誤。這種錯誤的原因是你的web.config裏的service名稱和CalculatorService.svc裏的ServiceHost名稱不一致的緣故,統一一下就可以了。

 

還有,一般我們創建的有效的WCF的虛擬目錄一般都是在Default Web Site下的,應用程序池一般也是DefaultAppPool(4.0)。只要在這裏添加應用程序就可以完成對WCF虛擬目錄在IIS端的添加。別名那一欄就是你WCF的web端的路徑了--注意。如果你直接添加一個網站爲WCF的虛擬目錄而不是用Default Web Site可能會沒有效果,目前還不知道原因。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章