2010-07-23 101 views
3

我有一個新創建的asp.net MVC 2.0應用程序,它與現有的asp.net webforms應用程序完全獨立的解決方案。爲什麼你需要在子asp.net項目中包含父DLL?

因爲我不希望用戶必須再次登錄時,我在同一站點中現有的WebForms應用程序部署的MVC應用程序 - 一切都很正常。

有一件事讓我完全困惑,雖然Webforms應用程序使用了與我的MVC應用程序無關的第三方DLL,但是如果不將該DLL包含在MVC \ bin目錄中,我不能使用MVC應用程序。爲什麼這是必需的?這不是該應用程序的一部分?它甚至造成我的問題吧,所以我更加好奇了......

爲什麼被要求在我的MVC應用程序這個依賴的DLL?

+0

你有一個意外的集引用?也許在web.config? – 2010-07-23 17:17:37

+0

好問題,但不是,完全沒有參考該DLL。這兩個項目在web.config中共享相同的MachineKey,是否會導致依賴性?雖然沒有意義... – 2010-07-23 17:33:20

回答

6

的原因是因爲你的父母的應用程序可能是設置在web.config中的模塊或處理部分,並在IIS 7+ IIS配置系統採用分佈式/分層配置系統配套的web.config文件。

在這種情況下,子應用程序web.config繼承父級web.config的所有設置。不幸的是,ASP.NET僅使用/ bin目錄,並且必須包含在根目錄中,這意味着由於您可能正在將DLL部署到父應用程序的/ bin目錄中,所以子應用程序不會知道這件事。

,讓你從繼承到子應用程序阻止它你可以修改父的使用位置標記,並設置inheritInChildApplications web.config中:http://forums.iis.net/t/994377.aspx

+1

感謝卡洛斯,這真的很有幫助!我注意到3.5中缺少智能感知,但在封裝後,它沒有繼承。 ,這並不會解決問題,因爲現在我得到驗證錯誤,當我鏈接到MVC網站,可能是因爲<驗證>和部分不繼承。 我會繼續嘗試,但任何想法,爲什麼我現在正在獲取身份驗證錯誤? – 2010-07-24 15:32:53

+1

是的!通過添加來實現它。謝謝你,卡洛斯,你真的幫了我。 – 2010-07-24 15:38:34

+0

關於此事的更多信息在這裏:http://www.hanselman.com/blog/ChangingASPNETWebconfigInheritanceWhenMixingVersionsOfChildApplications.aspx – 2014-05-22 18:01:09

相關問題