2011-10-04 78 views
4

我在.NET 4.0應用程序中有一個經典的asp應用程序。我已將默認文檔設置爲login.asp,但它不會自動重定向到它。整個應用程序運行良好,甚至如果我瀏覽它,甚至正確顯示login.asp。asp默認文檔不能在IIS7上工作

web.config中的默認文檔部分是如下:

<defaultDocument> 
    <files> 
     <clear /> 
     <add value="login.asp" /> 
     <add value="index.html" /> 
     <add value="default.aspx" /> 
     <add value="Default.htm" /> 
     <add value="Default.asp" /> 
     <add value="index.htm" /> 
     <add value="iisstart.htm" /> 
    </files> 
</defaultDocument> 

我已經看過這個網站的其他類似的問題,但都沒有多大的幫助。

回答

7

我終於發現問題所在,因爲asp應用程序在使用.NET Framework 4.0的經典模式下被分配到應用程序池。

當我更改應用程序池以使用.NET Framework 2.0(在經典模式下使用管理管道)時,默認文檔也開始工作了!

+0

您確定新的應用程序池處於經典模式嗎?我忘了'system.webServer'部分只能在集成模式下工作。 –

+0

是的,我必須讓它成爲經典模式才能讓asp應用程序正常工作。 – Shirlz

+0

你救了我的一週!該網站沒有任何改變,但Windows更新肯定有些東西,因爲該網站將以我的自定義'DefaultPage'開始。我沒有更改管道模式,但將.NET版本設置爲2.0.x後,網站再次加載。 – Gustav

5
  1. 確保已讀/寫Feature Delegation enabled爲默認文檔: 1.jpg

  2. DefaultDocument不重定向到文件(即URL不變)。它的作用類似於Server.Transfer函數 - 當請求根URL(http://sitename/)時執行該文件。可能會執行login.asp,但它有指示將登錄用戶重定向到不同的頁面,或向他們顯示不同的內容。

  3. 確保響應沒有被緩存。清除緩存和Cookie,然後重試。

+0

謝謝你非常明確的說明。我終於發現問題是因爲asp應用程序使用.net framework 4.0以經典模式分配給應用程序池。一旦我改變這個使用.net 2.0,默認文檔也開始工作了! – Shirlz

1

今天我有一個全新的asp.net站點部署到Azure這個問題。我試着用IIS和搞亂我的web.config包括

<defaultDocument enabled="true"> 
    <files> 
     <clear /> 
     <add value="Index.html" /> 
    </files> 
</defaultDocument> 

原來我的問題是,文件>新建項目嚮導默認使用.NET 4.5.2,並沒有完全在Azure中被支持。我重新編譯使用.NET 4.5作爲目標,現在一切正常!