2012-02-24 83 views
1

我最近將一個Web應用程序從.Net 3.5遷移到.Net 4,並將應用程序池更改爲IIS 7.5中的集成模式。這個應用程序有2個部分:第一個向公衆開放,第二個僅通過登錄。我使用的是在根web.config正是如此configued的登錄表單認證:ASP.Net 4 IIS 7.5中的表單身份驗證 - 默認文檔不再工作

<authentication mode="Forms"> 
    <forms loginUrl="~/private/login.aspx" protection="All" timeout="20" name=".ASPXAUTH" path="/" requireSSL="false" slidingExpiration="true" defaultUrl="~/private/default.aspx" cookieless="UseCookies" enableCrossAppRedirects="true" /> 
</authentication> 

在根web.config我有默認授權拒絕未經授權的用戶,正是如此:

<authorization> 
    <deny users="?" /> 
</authorization> 

但我有下面的根web.config配置的設置讓大家看到一個歡迎頁面:

<location path="Default.aspx"> 
<system.web> 
    <authorization> 
    <allow users="?,*" /> 
    </authorization> 
</system.web> 

這已經工作很多年了,但現在,如果我沒有明確地將Default.aspx放在URL中,表單重定向模塊會導致登錄頁面被提供。我已驗證我的默認頁面配置正確,並且它們在IIS7中啓用。我也嘗試在web.config中指定它們。我已驗證DefaultDocumentModule在DirectoryListing模塊之前已排序。

如果我刪除元素的問題「消失」,但效果將默認爲允許所有用戶,這是完全不受歡迎的。

我出來的想法。建議?

感謝

回答

0

好像某種默認文檔問題。如果您在該站點查看IIS管理器,「默認文檔」列表中包含了什麼內容。列表中的Default.aspx以外的其他值是否可能更高?如果在您的根網站中找到與此匹配的內容,它將嘗試首先到達那裏,然後重定向到登錄。

您是否明確地在web.config中設置了默認文檔?如:

<defaultDocument enabled="true"> 
     <files> 
      <clear /> 
      <add value="Default.aspx" /> 
      <add value="Default.htm" /> 
      <add value="index.htm" /> 
      <add value="index.html" /> 
      <add value="iisstart.htm" /> 
     </files> 
    </defaultDocument> 
+0

Default.aspx位於根網站列表的頂部。我的網站從此繼承。我也試過這個: paulv7260 2012-02-24 16:29:34

0

OK,我有一個微軟高級技術支持工程師深入到這對我來說。我們一起坐在工作站上,通過(a)環境和應用配置以及(b)可能的解決方案。

他引用了這個MS "Fast Publish" article這表明我通過MMC從IIS中刪除了ExtensionLessURL處理程序。那麼,我們是一個龐大的組織,服務器在wazoo之外,我不能保證這個變化總是會得到尊重,所以我不想這麼做。我們嘗試使用web.config刪除它們,但沒有奏效。

所以,我給他看了他this solution from another StackOverflow thread (posted by Dmitry.Alk),他說現在這是一個很好的解決辦法。對於這種特殊情況,它工作得很好

快速發佈文章引用了此修補程序A update is available that enables certain IIS 7.0 or IIS 7.5 handlers to handle requests whose URLs do not end with a period,我必須將它賣給我們的IT「部門」。

我不會說我在這裏寫了一個「答案」,但我想分享我學習以防其他人在此線程中發生的情況。

相關問題