關於發布的問題

2022-09-12 11:57:13 字數 2110 閱讀 9581

當我們開發好乙個**,發布到遠端的機器上的時候,也許我們會出現400,500的一些錯誤資訊,那時候我們千萬不要急,會出現這些問題就是因為我們發布的時候,出現了不應該的錯誤。

就以vs2012開發程式的發布來說,有好幾種,有檔案系統,web deployment ,ftp等等方式,這裡我就不詳細的說了,自己去看網上資料,介紹的很詳細。

發布為什麼會出現問題呢?其實無非是兩方面,乙個是你程式錯了,乙個是你環境錯了。

首先我們來說說:如何檢視你的錯誤資訊,一種方式是在我們的程式中都有乙個web.config,我們只需要在裡面的之間新增乙個就可以了,這種方式是在你網頁的除錯裡面輸出錯誤資訊,還有就是我們自己的程式中alert一下吧,或者去部署的電腦上的事件檢視器裡面看看,也可以去你iis部署的網頁的錯誤資訊裡面檢視。

就拿我來說吧,我發布的時候拷到服務端的時候,出現了400錯誤,提示為errore http 404.2的錯誤,原因是請求的內容似乎是指令碼,因而將無法由靜態檔案處理程式來處理,即iis裡的「isapi 或cgi 限制」 的配置有問題,屬於環境錯了。我把網上的解釋給你們看看就明白了:

「isapi」 是供iis載入和呼叫的dll, 如果沒配置相關的isapi,就無法正確地解釋網頁的內容,

之所以會丟擲後面「請求的內容似乎是指令碼,因而將無法由靜態檔案處理程式來處理」的錯誤資訊,極有可能是沒配置相關isapi對頁面進行解釋,導致iis預設把頁面當作靜態檔案來解釋,所以出錯,

解決方案是:

1)先確認**是基於那個netframework; 

2)  然後到「應用程式池」裡找**對應的應用程式池(右擊**-> 高階設定),雙擊程式池, 看程式池是否也**的net framework版本相同,

注意:net2.0,net3.0,net3.5對應的net framework版本都是v2.0.50727,而net4.0則基於v4.0.30319

3)  右擊**對應的 」應用程式池 -> 高階設定「 看」啟用32位應用程式「,如果**是以32編譯的就要設為true, 否則為false, 一般都是32編譯的,所以都選為true;

4) 如果上面的配置都沒錯,那就到問題的本質部分,即isapi的配置:

a.選中**->功能檢視-> 雙擊 isapi篩選器;

b.檢視是否有與**所基於的framework 對應的dll,  net2.0,3.0,3.5對應的dll是asp.net_2.0.50727.0, net4.0是asp.net_4.0_32bit或asp.net_4.0_64bit;

c.若沒有對應的dll,有可能是沒裝好iis,即漏掉了東西,如果不知選擇裝哪些部分,就應該完整的把整個iis裝完;

5)如果裝了vs再裝iis必須得對net framework 重灌一次, 執行cmd,輸入:

c:\windows\microsoft.net\framework\v4.0.30319\aspnet_regiis -i    

這樣子就可以解決這個錯誤了。在這裡我要說說的是在就是作業系統就拿win7和windows2003來說,按照上面的操作問題就不會很大,沒多少區別,也許就拿isapi配置來說你在windows2003裡面部署**如myweb右擊屬性,也許會看到isapi篩選器這個選項卡,在裡面好像是空白的其實不是,你只要在myweb上的**右擊屬性在isapi篩選器這個選項卡裡面就會看到我們isapi配置,而在win7中就是isapi篩選器開啟就行了。

當我解決這個問題之後,我又出現了500錯誤,提示為errore http 500.0,原因是我們的服務端錯誤,屬於程式的錯誤,我檢查了一遍程式沒什麼錯誤,於是我想到了既然是服務端錯誤,肯定是有些dll檔案沒有對映到,於是我檢視了一遍我引用的dll檔案,發現少了幾個dll檔案,這個時候你只需要把你少的dll檔案拷貝到bin資料夾下就行了。這時候我以為問題解決了,但依然還存在這個錯誤,當時可把我弄壞了,想了好幾天,最後還是解決了。我在開發的時候沒有在web.config裡面新增這個不知道具體錯在那,我是在伺服器事件檢視器裡面檢視的,不是很詳細,知道錯誤,但具體在那不知道。當我新增這個的時候,根據提示我把問題就解決了,是錯在oracle的客戶端上,我記得明明安裝成功了,但是其實失敗了,少了幾個dll檔案沒有在裡面。重新安裝了一下就解決了。這種錯誤讓我深刻理解了千萬不要粗心。就好像在自己的開發電腦上能發成功換了一台電腦失敗了。就是我們自己的環境沒弄好。

不多了說了,記住發布的環境要和開發的環境要一樣哦,作業系統可以不一樣。

關於禁用發布可能出現的問題處理

sql server在訂閱和發布是經常出現一些意想不到的問題,導致發布訂閱無法使用,此時經常需要對發布訂閱進行刪除,筆者經過多次試驗,發現直接刪除發布和訂閱時,經常會出現刪除不徹底,表面現象就是因發布訂閱而出現的觸發器 rowguid列等仍然存在,從而影響資料庫的正常使用,這樣還需要進一步對資料庫處...

Web API的發布問題

配置 isapi 和 cgi 限制 的4.0版本設定為允許,要不然出現 由於 web 伺服器上的 isapi 和 cgi 限制 列表設定,無法提供您請求的頁面。的錯誤。an error has occurred.multiple actions were found that match the r...

關於iOS7以後版本企業發布問題

大家都知道,蘋果在發布7.1以後,不打個招呼就把企業發布方式給換掉了 譴責一下 以前普通伺服器 web頁面 ipa plist就可以搞定,現在已經不行了。這裡重點說一下會遇到的問題以及解決方法。1 由於我們現在需要的是https加密型別的web頁面,所以我們需要購買證書。這裡要注意的是自己頒發的證書...