2012-11-19 68 views
0

我有一個.NET站點在Windows 2003上的IIS 6與子虛擬應用程序。網站結構看起來是這樣的:IIS 6子虛擬應用程序不使用.Net 4.0 Bin文件夾

  • MyWebSite(點到d:\ MyWebSite \版本\ 1.2)
    • 模板(虛擬應用程序,指向d:\ MyWebSite \ COMMON \模板)

它工作正常。現在我試圖從.NET 3.5升級到4.0。當從虛擬應用程序頁面運行餘上在web.config一個HTTP模塊得到一個異常:

異常類型:ConfigurationErrorsException異常信息:Could 無法加載文件或程序集「MyWebSite.dll,版本= 1.0。 0.0, 文化=中立'或其依賴之一。系統找不到 指定的文件。

MyWebSite.dll位於我的網站的bin文件夾中。裝配粘結劑日誌條目有如下報道:

LOG:應用平臺=文件:/// d:/ MyWebSite /通用/模板/
LOG:初始PrivatePath = d:\ MyWebSite \ COMMON \模板\ BIN

所以它正在尋找虛擬應用程序目錄內的bin文件夾,而不是根站點文件夾。它似乎沒有以.NET 3.5的方式工作。發生了什麼變化,以及如何使模板虛擬應用程序找到正確的bin文件夾?我寧願不提供bin文件夾中每個.dll的探測信息。謝謝你的幫助。

回答

1

好吧,我想我已經找到了這個問題。在我的問題中,我錯過了幾個關鍵的東西。這些錯誤是針對無延伸路徑上的請求的,這些路徑本應返回404錯誤而不是正在處理。看起來,.NET 4在默認情況下啓用了IIS 6中的擴展名url功能。它通過ISAPI過濾器將「/eurl.axd/GUID」添加到url,以便通過aspnet_isapi.dll進行處理。我必須添加註冊表DWORD HKLM \ SOFTWARE \ Wow6432Node \ Microsoft \ ASP.NET \ 4.0.30319.0 \ EnableExtensionlessUrls(或HKLM \ SOFTWARE \ Microsoft \ ASP.NET \ 4.0.30319.0 \ EnableExtensionlessUrls for non-Wow64)並將其設置爲0.您可以在這裏閱讀更多關於它的信息:http://blogs.msdn.com/b/tmarq/archive/2010/06/18/how-to-disable-the-asp-net-v4-0-extensionless-url-feature-on-iis-6-0.aspx

相關問題