我有一個使用「發佈網站」發佈的VS 2005網站,並清除了所有三個複選框。我也有一個部署項目,可以獲取發佈的文件並創建一個MSI。然後我將該軟件包安裝在單獨的測試服務器上。如何解決ASP.NET錯誤「文件'nnn.aspx'未被預編譯,無法請求。」?
換句話說,整個網站是預編譯的。然而,當我去到一個名爲「服務」的具體子文件夾的任何.aspx文件,我得到一個HttpException:
System.Web.HttpException:文件「/myapp/Services/mypage.aspx」還沒有已經被預編譯,並且不能被請求。
如果我轉到其他文件夾中的.aspx文件,無論是根文件夾還是其他子文件夾,它都可以正常工作。
mypage.aspx本身的內容是:<%@ Page Language="C#" AutoEventWireup="true" CodeFile="mypage.aspx.cs" Inherits="Services_mypage" %>"
在/myapp/bin
文件夾,我可以看到一個mypage.aspx.989dc2fb.compiled
文件。這個內容似乎指向一個特定的程序集,它也存在於bin文件夾中。
爲什麼會發生此錯誤? .compiled文件在那裏,程序集在那裏,問題中的類型出現在該程序集中(我可以在對象瀏覽器中看到它)。是否有關.compiled文件的名稱或內容?不知何故,我有錯版嗎? .compiled文件名中的表面上的隨機數是什麼意思,它是重要的?
我也想提一提,這個問題突然出現,我不知道什麼樣的變化有可能因爲前幾天正常工作已經完成(但據我所知,沒有的)。
+1爲缺少的程序集提示(在我的情況下,一些程序集已從GAC中刪除) – 2010-09-07 08:18:39
+1也提示我。原來我們有一個缺失的控制組件。 – 2012-06-19 09:50:35
對我而言略有不同,但同樣的dll主題。我有一個項目A,它生成了一個dll,其中包含一些在項目B中使用的預編譯的用戶控件。這兩個項目都使用Telerik RadControls,但使用了不同的版本。項目B中未使用A控件的頁面發揮作用,這些頁面提供了有關版本不匹配的適當消息。然後B中的.asmx服務給了非預先編譯的消息非常無益的幫助。同步版本修復了這一切。 – Piwaf 2012-12-21 18:22:17