我有一個相當簡單的ASP.NET應用程序,在Visual Studio中設置爲Web應用程序項目。有一個特定的aspx文件稱爲「invoice.aspx」,IIS拒絕服務。我使用的URL絕對正確,來自此目錄的其他aspx頁面加載並執行得很好。但不是這一頁!我已經在Page_Load中設置了一個斷點,以確保沒有什麼好玩的事情發生,但是斷點永遠不會被擊中。 @Page指令看起來很好......文件權限與目錄中的其他文件相同......在構建期間沒有錯誤。我在這裏錯過了什麼?這讓我感到困惑。這是Windows XP開發盒上的IIS6。什麼會導致IIS服務的ASPX頁僞造404?
1
A
回答
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
您是否嘗試過重命名該文件並嘗試訪問該文件?
此外,使用記事本將文件的全部內容複製到一個新文件並保存該文件。