2010年7月8日 星期四

Flex_IIS7下部署FluorineFX

持續的裝機,持續的除錯,終於看到了可愛的登入頁面,Oracle也正常連線了,圖也出來了,MapGuide所撰寫的各項功能也正常執行,心想「把功能測一測回公司吧!」

好!登入OK!
資料庫寫入功能,OK!
上傳資料,OK!
MIS相關功能,OK!
圖層編修,OK!
屬性編修,OK!
怎麼測怎麼OK,還真不錯,感動的都要哭了。

這時候想到之前想要把學的東西用在案子上,所以利用Flex寫了一個照片顯示與線上教學的功能,穿插在系統中,趕快來測一下這個酷炫的功能。很好!沒動靜,看起來是出了某些錯誤,趕快下載flash player debug版本,果不期然一讀頁面就跳出錯誤訊息。

error message:RPC Fault faultString="Send failed" faultCode="Client.Error.MessageSend" faultDetail="Channel.Connect.Failed error NetConnection.Call.BadVersion: : url: 'http://10.35.0.30/TPSW_Fluorine/Gateway.aspx'"]

好!完全沒遇過,看起來像是連線出了某些錯誤沒辦法使用到後端的服務。趕快回想一下這個功能是用什麼做的。
後端服務語法:ASP.NET
服務發佈類型:Remote Object
服務發佈軟體:FluorineFx
回想結束,完全沒有幫助,直接Google好了~~~~

查來查去會發現非常沒有焦點,不知道是我Google的功力太差還是這問題太簡單,總是找不到完全相符的解決方法,只能在一大堆文章裡面東翻西翻。

後來認為還是先做分段的測試將問題聚焦以後看能不能找到更有用的文章,所以決定先確認服務有正常啟動,趕快打開FluorineFx的測試頁面。非常好!整個打不開,網頁顯示找不到Fluorine.aspx的頁面。

沒想到測的第一項就出現問題,也只好先解決碰到的問題,畢竟不確定服務是否有正常啟動,其他的測試都是比較沒有意義的。因為屬於不能正常啟動,所以就直接將矛頭指向IIS7,看是否是因為IIS7的原因才讓FluorineFx不能正常的運作,結果也真的找到解決的方法。

解法:IIS7必須先進行模組的設定,才能夠正常啟動FluorineFx的服務
步驟:
1. 開啟伺服器管理員→網站伺服器→站台→選取建立的FluorineFx應用程式集→選擇IIS下的"模組"。

2. 右鍵新增Managed模組。

3. 於名稱上輸入:FluorineGateway,類型選擇:FluorineFx.FluorineGateway。

完成上述設定以後,會發現Fluorine.aspx頁面可以正常被啟用了,趕快測試服務是不是正常。好!服務可以正常啟用,也正確的的連接後端資料庫。

既然有做改變,就有機會改變錯誤訊息,所以一邊祈禱錯誤改變,一邊點擊重新整理頁面。我的天呀!神蹟發生了!解決了~~~~~照片正常顯示! T.T

所以,無法連線的原因其實本質上是因為服務根本沒有被正常啟動。所以,以後這種前端、後端的系統,裝機出現問題,首先要測試的就是後端服務是否可以正常提供服務。

*註:Google的過程中,有篇blog提到"第一次在網站/模組中,找不到FluorineFX.FluorineGateway這個選項的話,把你的網站根目錄或是虛擬目錄指到網站的bin資料夾有FluorineFx.dll的路徑去,再指定模組",雖然沒遇到這個問題,但難保之後不會遇到!先把他記下來。

感謝網路上的分享者。T.T 系統正常運作了。

2 則留言:

張貼留言