2013-01-24 47 views
2

今天我一直在與一個非常奇怪的問題作鬥爭。我花了好幾天的時間開發一個曾經是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沒有這個屬性。

那麼,爲什麼沒有它在一臺服務器上運行,而沒有在另一臺服務器上運行。當然,爲所有請求調用所有模塊效率較低。

如果任何人有任何想法,爲什麼這可能會發生,我會永遠感激,因爲雖然我們的分期環境現在工作,我討厭不知道你的確切。

謝謝!

回答

1

我會檢查的第一件事是要確保,因爲它可能已經被應用到現有的開發環境,並可以解釋爲什麼一個環境中工作,一個是不是以下更新應用到你的新品牌新的臨時環境:http://support.microsoft.com/kb/980368

有關靜態文件路由的詳細信息,上面和一般的修復程序「如何擴展名路由」的工作,我建議你閱讀下面的文章:http://blogs.msdn.com/b/tmarq/archive/2010/04/01/asp-net-4-0-enables-routing-of-extensionless-urls-without-impacting-static-requests.aspx

+0

安裝該修復程序並獲得成功,謝謝大家。然而奇怪的是,我們的開發盒沒有安裝這個修補程序,但仍然有效!? – T00ks

+0

我不知道如何解決這個問題,因爲它們沒有確切的複製環境中,它可能是一個次要的IIS版本不同,其他一些Windows更新組件等不知道確切的設置,就很難說了。很高興爲您效力! – Tommy