2010-05-11 72 views
1

我在IIS 6上有兩個網站在將它們設置爲ASP.NET 2時(通過IIS屬性中的ASP.NET選項卡)拋出服務器錯誤 - 一個是因爲在.NET 4中構建的庫存在依賴關係,另一個因爲它是一個N4/MVC2應用程序,它指定4.0,因爲它是config中的targetFramework。什麼可能導致.net 4.0和IIS 6的錯誤?

當我將ASP.NET選項卡中的設置更改爲.NET 4時,即使指向特定頁面(通過MVC應用程序中的路由),兩個網站都會返回'頁面無法找到'錯誤。 ASP.NET應用程序中的aspx文件)。

我試着在MVC應用程序中添加一個通配符ISAPI過濾器,如上所述的一些在線位置,但是這並沒有做任何事情(無論何時指向2.0 dll或4.0 dll)。服務器和Visual Studio上的.NET 4版本相同(4.0.30319)。

我IIS 6在Windows服務器上運行的2003

沒有人有任何想法我會在這裏失去了?

+0

的可能重複[部署asp.net MVC的測試到IIS 6導致404的(http://stackoverflow.com/questions/239981/deploy-asp-net-mvc-beta -iso-6-causes-404s) – Malfist 2010-05-11 15:37:23

+0

我已經嘗試了那裏的頂級投票解決方案,無論是在v2還是在v4文件夾中,都沒有運氣。它不能解決ASP.NET應用程序問題,因爲它有一個.aspx擴展名(因此不需要通配符傳遞給aspnet_isapi.dll)。 – 2010-05-11 15:40:27

回答

3

顯然,您的應用程序必須在CLR的第4版中運行。這一部分很明顯。讓你的ISAPI過濾器正確可以是一個掙扎。首先,您需要確保(並且我的意思是確保,不要只是瀏覽它並認爲它是正確的,複製/粘貼路徑並確保所有內容都正確指向),所有過濾器都指向正確的v4.0 DLL 。接下來,確保您的通配符篩選器沒有選中「確保文件」複選框。這是最讓我擔心的問題。最後,確保您的權限是正確的。

如果仍然無法正常工作,則需要打開融合日誌記錄,檢查iis日誌,甚至可以拔出進程監視器以​​查看連接到服務器時IIS正在嘗試執行的操作。

+0

哎喲,這比我習慣的要粗糙得多。我有這個愚蠢的想法,更新到v4只是'改變項目,在服務器上安裝框架,檢​​查這個,改變它,等等!當我回來的時候,我會仔細檢查所有這些,我是爲一個網站做的,但不是兩個都一樣......而且通配符過濾器絕對沒有檢查過這個框,這在博客建議中很清楚讀。 – 2010-05-11 16:33:09

+0

@pete iis6不是最容易起牀和運行的東西。有這麼多的零件和部件必須工作,而當他們不是所有你得到的是那該死的404. – Will 2010-05-11 17:10:33

+0

該死的。我沒有必要做任何比之前添加網站更糟糕的事情,並且總是能夠工作......並且如果我告訴它使用.NET 2,我可以使這些工作(以及拋出框架錯誤)...我'會繼續搜索。 – 2010-05-12 07:57:01

4

按照皮特的意見,對我來說,答案是:

這是在IIS中設置,Web服務 擴展。 .NET 4被設置爲 禁止。使得它,一切 工作

相關問題