IIS托管WCF服務(wù)實際操作中常見錯誤分析
當我們在應(yīng)用WCF進行程序開發(fā)中,是經(jīng)常會遇到一些比較棘手的問題,這些問題需要我們通過不斷的經(jīng)驗積累來掌握技巧進行解決。那么,接下來我們將會了解到一些IIS托管WCF服務(wù)中遇到的問題及解決方法。
如果你創(chuàng)建寄宿在IIS中的WCF Service網(wǎng)站項目,(圖1顯示怎樣創(chuàng)建這樣的網(wǎng)站項目),或者你把你的WCF Web Application項目或者WCF Service網(wǎng)站項目發(fā)布或部署到IIS網(wǎng)站服務(wù)器上后,你可以用網(wǎng)頁瀏覽器去訪問你的網(wǎng)站。如果你在嘗試打開這些網(wǎng)頁時無法看到正確的頁面顯示,或者看到錯誤提示頁面(圖2是錯誤提示頁面的一個例子: HTTP Error 500.21 – Internal Server Error Handler “svc-Integrated” has a bad module “ManagedPipelineHandler” in its module list),下面是IIS托管WCF服務(wù)中最常見的問題和解決辦法。
圖1
圖2
IIS托管WCF服務(wù)常見問題與解決辦法:
1. 檢查IIS是否正確安裝和運行
你需要保證你的IIS服務(wù)器已經(jīng)正確安裝并正常運行。這里我們不討論IIS安裝的方法(你可你根據(jù)你的Windows版本和需要的IIS版本去bing中搜索), 只給出簡單的驗證方法。如圖2所示,在IE地址欄中輸入http://localhost, 如果你看到如圖所示的頁面或者類似的其他版本IIS的默認頁面。那么就說明IIS已經(jīng)在正常運行了。
圖3
2. 正確注冊安裝ASP.net#t#
打開Visual Studio命令行提示工具(Start->All Programs->Visual Studio->Visual Studio Tools->Visual Studio Command Prompt, 如果你的OS是Windows Vista及以后的版本,你需要以管理員身份打開),運行”aspnet_regiis.exe -i”。在命令運行完成后重新嘗試你的網(wǎng)站。
3. 在IIS中配置正確的Application Pool
在IIS管理工具(IIS Manager)中找到你的Website, 選中。在右側(cè)的面板中點擊Basic Settings。 你將看到如圖3所示的彈出窗口,其中有你正在使用的Application Pool的信息。 選擇IIS管理工具中的Applications Pools節(jié)點。選中你在使用的Application Pool, 點擊右側(cè)的Basic Settings。 你將看到如圖4所示的彈出窗口。確定其中的.NET Framework版本是v4.0.xxxxx。如果不是,這也許就是你看到錯誤頁面的原因。嘗試在圖2中把它改成v4.0或者在圖3中選擇”Select…”, 更改成其他的使用.NET Framework v4.0的Application Pool。
圖4
圖5
4. 安裝注冊WCF組件
WCF沒有正確的在IIS中注冊也許是導(dǎo)致看到錯誤頁面的最常見原因。如果你在安裝Visual Studio后才安裝IIS, 那么你在IIS托管WCF服務(wù)中,就很可能遇到這樣的問題。打開Visual Studio命令行提示工具(Start->All Programs->Visual Studio->Visual Studio Tools->Visual Studio Command Prompt, 如果你的OS是Windows Vista及以后的版本,你需要以管理員身份打開),運行” ServiceModelReg.exe –ia”。 命令完成后再次訪問你的WCF 網(wǎng)站。