今天我一直在與一個非常奇怪的問題作鬥爭。我花了好幾天的時間開發一個曾經是ASP.NET 4的ASP.NET MVC3 Web應用程序。它現在不是現在的一半MVC3和一半ASP.NET 4都在相同的應用程序下運行。這很好。部署的ASP.NET MVC 3.0只適用於runAllManagedModulesForAllRequests =「true」
今天,我們建立了一個全新的臨時環境(Server 2008 R2),部署了代碼並運行了應用程序。只有在嘗試訪問任何MVC頁面時出現HTTP 404錯誤,所有aspx頁面都可以正常工作。爲了證明問題是環境問題,我們將相同的代碼部署到開發箱上的新應用程序,並且這種方法運行順暢。
花了整整一天的時間確保兩個環境完全相同(IIS角色服務,Windows更新,安裝的應用程序..一切)然後我注意到在404錯誤頁面上,請求的處理程序是「StaticFile」。
後有點谷歌搜索我在標題
<system.webServer><modules runAllManagedModulesForAllRequests="true"></modules></system.webServer>
現在這工作的,所以我想用無靜態路由模塊橫跨選項來不被稱爲沒有它(如果原諒我天真無邪)。
問題是,在我們的開發環境中,web.config沒有這個屬性。
那麼,爲什麼沒有它在一臺服務器上運行,而沒有在另一臺服務器上運行。當然,爲所有請求調用所有模塊效率較低。
如果任何人有任何想法,爲什麼這可能會發生,我會永遠感激,因爲雖然我們的分期環境現在工作,我討厭不知道你的確切。
謝謝!
安裝該修復程序並獲得成功,謝謝大家。然而奇怪的是,我們的開發盒沒有安裝這個修補程序,但仍然有效!? – T00ks
我不知道如何解決這個問題,因爲它們沒有確切的複製環境中,它可能是一個次要的IIS版本不同,其他一些Windows更新組件等不知道確切的設置,就很難說了。很高興爲您效力! – Tommy