標籤:blog http os art re 問題
最近忙於一個Web的Bug修正,是先人寫的一個東東,架構很簡單,一個前端的項目,一個WebService的項目,以及背景一些dll。之前一直很排斥這個產品,因為它沒法啟動,印象中沒有跑得起來過的時候。現在客戶那邊有問題,沒辦法,先人已不再,只能接手。 Web的東西好就好在運行時報錯,其實我感覺這反而有礙於開發。如對WebService的引用,明明引用已經過時了,但是編譯卻能過,跑起來就卡那,然後介面上給你來堆不知所云的報錯。嘗試更新Web服務引用,失敗,404錯誤,把之前的引用卸了重新添加web服務引用才成功,注意的地方可以參考http://www.cnblogs.com/joetao/articles/1934884.html,由於我的WebService就在同一個解決方案裡,所以我添加的時候直接在解決方案的服務裡找到添加的。這個問題困擾了我一天。 現在總算能順利跑起來了,部署又有問題了。代碼可以跑,部署到IIS裡就報錯,從報錯的內容來看應該是WebService的服務沒有找到,這就讓人摸不到頭腦了,網上也搜了各種各樣的文章,各種方法也試過,WebService也能正常瀏覽,就是調用不起來。QQ裡問了兩個人,不鳥,群裡也問,直接無視,部門裡也沒別人搞著玩意,這可讓人惱火了,真有點窮途末路的感覺。 為什麼會調用不起來呢?許可權嗎?哥,我已經開放到everyone了,還要我怎麼開?網上說看網址裡直接輸入地址能不能看到WebService的頁面,能訪問到就說明服務沒有問題,我能正常訪問頁面,方法也一目瞭然,為什麼我的頁面調不起來,不帶這麼玩的。 我打算自己弄個小程式調調小的服務,一切從簡,簡單到只有一個HelloWord方法,也一樣,代碼能調,一部署就調不到。一個偶然的、不經意的一瞥,讓我看到了破綻,嘿嘿,這玩意有玄機!玄機在哪,就在於路徑!我注意到,iis部署好後WebService是能正常瀏覽,但路徑並不是代碼裡調用的路徑,難怪一直調不到,於是又設定了遍虛擬路徑,指向WebService的實體路徑,轉換成應用程式,再次調用,成功!這個問題又花了我一天時間。 雖然成功了,我還是有兩個疑問,如有高手路過,不妨為我解惑。 疑問一:如果iis部署時建立網站,這就要指定連接埠,這樣訪問時就要用IP帶連接埠的形式訪問,這有點怪怪的,我也沒見百度後面還帶個連接埠訪問啊;如果都部署在預設網站裡,那就不需要帶連接埠,預設是80,直接localhost就能訪問頁面了,符合常理,但是VS裡是會自動給你建立連接埠的,引用好之後就是固定映射,必須帶連接埠,iis是可以建虛擬路徑,但是不帶連接埠的,我總不能讓VS指定連接埠為80吧,不用試我都知道,肯定連接埠衝突。 疑問二:在建立網站的時候已經指向了實體路徑,這時必須再添加個虛擬路徑指向這個路徑,否則就只能localhost+連接埠訪問,這不是很二嘛,網站不可以指定虛擬路徑,必須添加,既然這個路徑有可能是沒用的,那建立網站何必指向路徑?既然是雞肋,就做好雞肋的本分,要不然功能就強大點。不知各位是否有這樣的困擾。 大家有什麼好的辦法希望能指點指點。前面說的兩個問題花費了我兩天時間,期間也有不少小問題,都一一去嘗試了,收穫頗多,還是那句話,If you nerver try,you will nerver know.再接再勵吧!