關于程序源碼,.Net版本,程序集,等全部文件一樣,在本地發布沒有問題,在服務器上面重寫頁面卻出現了404錯誤的問題的解決方案。
出現問題的時間:20140919,解決問題的時間,20140920,問題出現的效果如下
本地發布后點擊搜索:
服務器發布后點擊搜索
這就奇怪了,明明是兩個同樣源碼,同樣配置文件,同樣數據庫的,本地不出現問題,服務器出現問題。
解決方法如下:
第一,檢測iis有沒有權限訪問此文件夾下面的url重寫的地址。(返回:添加了net work service 這個賬戶的權限,使其在此文件夾下面有訪問的權利)。
第二,檢查數據庫是否匹配,可能因為更改了master(此項目全局路徑配置文件)配置文件地址使其訪問的地址變更或者更改!(返回:沒有更新,還是原來路徑)。
第三,檢查有沒有惡意的程序對文件夾內的文件進行了讀取保護,還是因為惡意文件對文件夾進行了感染導致安防軟件對此文件夾的讀取或者寫入造成了攔截(返回:關閉數據庫或更改及外在的鏈接端口例如1433,21、25、80、110)等危險端口。
完成了這么這么多,(程序集,文件,配置都正常訪問)為啥都沒有修復這個問題,我就奇怪了,到底是什么原因,后來我就用了程序員慣用的排除法。(你懂的,這已經是我最后的方法了,再不行,我就,我就去屎~)
怎么排除,排除就是將所有服務器元素與本機的元素寫出來相比對,把相同的劃掉,總有一個不同點,我們就研究這個不同點,看看到底有什么異常,至于那些相同點,我們就沒有必要去觀察了!
所在地 | 程序集 | 源碼 | 配置 | 系統 | iis | 內存 | 數據庫 | Net版本 | |
本地 | Cw100 | Cw100 | Cw100 | Win8.1 | Iis8.5 | 6G | 2014 | .4.0 | |
線上 | Cw100 | Cw100 | Cw100 | Win2003 | Iis6 | 2.5G | 2005 | .4.0 |
不一樣的就是這些了,
數據庫兩地的實例都是一個,內存的,我想也沒打關系,這兩可以先排除了。下面就這兩個不同點。
第一,系統方面,系統方面,我找了很多人試過這個版本,除了windowsServer沒有之外,Win7,win8,win8.1都沒事,我想應該跟系統沒太大關系。
第二,Iis,iis里服務端是6.0,我本地是8.5,我估計這里面可能有點玄乎,然后又繞到了iis,檢測iis版本,沒問題,而且其他網站都能發布成功,為啥子這個不行勒。
然后睡了一覺…
驚覺,是不是兼容的問題!!!
然后想起了前陣子報的那個錯
配置文件配置了兩個節點,一個用于保存版本為iis7以下的,一個用與配置版本為iis7以上的!我刪除了iis7以下的!
是不是刪除了一個節點導致了問題!
然后我將原來的配置文件一替換。
然后就OK了
我表示很,很,很無語?。。?/p>
后記:因為我發布是全部覆蓋原來的文件,所以我可能也誤刪或者不小心覆蓋了以前的配置,我接手這個項目之前,他們在更改這個項目的時候,如果只是簡簡單單的加個圖片或者,或者更改一個url的話,直接去線上更改,這并不是是我推崇的一種解決方案的一種方式,他們并沒有提交,也就是很多次看似簡單的更改,實際上并沒有在項目里面同步,這是一個很棘手的問題,于是乎,我想到了一種非常非常蠢的一種解決方案,我自己寫了一個檢測代碼中判斷該文件與現在的文件有什么不同的一個小東西,當然很多人問我為什么不用svn等工具,第一是全是鳥語的,我這個愛國心,不太看得懂,O(∩_∩)O哈哈哈~,
其次,我們公司里面經常會更改文件名字,例如本來這個文件叫 manage 可能之后就叫做CW100.manage,CW200.manage,各種各樣的變化,使我不得不半手動,半自動的去更改這個項目的一些問題,有時候經常出現版本破壞的問題,還是要得益于我們的git版本控制工具,我不得不說這是一個很棒的托管工具,每次完成一個項目的更改我都會小心翼翼的備份,才會使這次項目遷移成功!
新聞熱點
疑難解答