2009-02-25 65 views
1

我有一個相當簡單的ASP.NET應用程序,在Visual Studio中設置爲Web應用程序項目。有一個特定的aspx文件稱爲「invoice.aspx」,IIS拒絕服務。我使用的URL絕對正確,來自此目錄的其他aspx頁面加載並執行得很好。但不是這一頁!我已經在Page_Load中設置了一個斷點,以確保沒有什麼好玩的事情發生,但是斷點永遠不會被擊中。 @Page指令看起來很好......文件權限與目錄中的其他文件相同......在構建期間沒有錯誤。我在這裏錯過了什麼?這讓我感到困惑。這是Windows XP開發盒上的IIS6。什麼會導致IIS服務的ASPX頁僞造404?

回答

2

好了,我知道我會找到自己的答案,如果我發佈了關於它... :)

它原來是一個缺少DLL。一個依賴對象不能被創建,所以它出錯了。爲什麼它只是給我一個缺少組裝錯誤?啊,這是一個很好的問題!用下面的糟糕的代碼示例答案:

public partial class Invoice : System.Web.UI.Page 
{ 
    DependentObject SomeObject = new DependentObject(); 
    private void Page_Load(object sender, System.EventArgs e) 
    { 
     // Put user code to initialize the page here 

    } 
} 

如果DependentObject的代碼的程序集丟失...發票對象,因此頁面送達,不能初始化......服務器無法找到它...我們有一個404.

我不認爲自己是C#的專家,但我覺得上面的代碼是你永遠不應該做的事情。 (對嗎?)不知道爲什麼編譯器允許它。

將初始對象創建移動到Page_Load中會產生更有用的丟失程序集異常。

public partial class Invoice : System.Web.UI.Page 
{ 
    DependentObject SomeObject; 
    private void Page_Load(object sender, System.EventArgs e) 
    { 
     // Put user code to initialize the page here 
     SomeObject = new DependentObject(); 
    } 
} 

謝謝你們,謝謝你們的建議。

0

發送大量數據,長查詢字符串或以其他方式發出內置IIS7 urlscan可能會阻止的請求?如果IIS7阻止請求,它會發出404錯誤。

0

您是否嘗試過重命名該文件並嘗試訪問該文件?

此外,使用記事本將文件的全部內容複製到一個新文件並保存該文件。