2010-01-30 94 views
1

有沒有辦法以編程方式知道某人使用IIS的默認文檔功能來訪問我的頁面(也就是說,我的.ASPX的名稱不在他們的URL中)?測試默認文檔請求?

回答

1

我能想到的唯一的辦法就是查詢的網址(以看它是否要求http://localhost/virtual/代替http://localhost/virtual/default.aspx),並認爲默認文檔...

不爲MVC或者如果你有URL重寫功能...我不知道這一個IIS功能會,除非出於某種原因,它被添加作爲一個模塊並通過IIS 7中提供的...

1

我不認爲有辦法做到這一點。如果使用默認文檔功能,則IIS只會在將文檔傳遞給ASP.NET之前將文檔名稱放入URL中。

什麼是你想用這個來完成?如果你喜歡,你可以關閉默認文件。

+0

我的Application_BeginRequest觸發一些邏輯,每當請求的文件不能在磁盤上找到。當他們要求默認文檔時,該邏輯正在觸發(IIS7,並且Request.Path根本不反映.aspx文件名)。我很想加入,當用戶使用默認文檔獲取對*不*存在的頁面的例外。 – lance 2010-01-30 16:29:26

+0

當文件不能被發現,火災真的有無關404型的東西,但也許我應該把這個邏輯在我的404處理器頁面的邏輯。這樣,默認文檔方案永遠不會觸發該代碼。 – lance 2010-01-30 16:30:54

+0

@lance:我認爲如果你得到一個沒有文件名的請求,那麼默認文檔是關閉的。至少在IIS6和更低版本中這是事實,我沒有意識到它在IIS7中發生了很大的變化。 – 2010-01-30 16:55:26