代码之家  ›  专栏  ›  技术社区  ›  Mark Kadlec

为什么需要在子ASP.NET项目中包含父DLL?

  •  3
  • Mark Kadlec  · 技术社区  · 14 年前

    我有一个新创建的ASP.NET MVC 2.0应用程序,它与现有的ASP.NET WebForms应用程序处于完全独立的解决方案中。

    因为我不希望用户再次登录,所以我将MVC应用程序部署在与现有webforms应用程序相同的站点中——一切都很好。

    但是有一件事让我完全困惑,webforms应用程序使用的第三方dll与我的MVC应用程序无关,但是如果不在mvc\bin目录中包含该dll,我就无法使用mvc应用程序。为什么需要这样做?它不是该应用程序的一部分?它甚至会给我带来麻烦,所以我更好奇…

    为什么我的MVC应用程序需要依赖于dll?

    1 回复  |  直到 12 年前
        1
  •  6
  •   Carlos Aguilar Mares    14 年前

    原因是,您的父应用程序可能会在“模块或处理程序”部分的web.config中设置该设置,而IIS 7+中的IIS配置系统使用支持web.config文件的分布式/分层配置系统。

    在这种情况下,子应用程序web.config从父web.config继承所有设置。不幸的是,ASP.NET只对每个应用程序使用/bin目录,它必须包含在根目录中,这意味着,由于您可能正在父应用程序的/bin目录中部署DLL,子应用程序对此一无所知。

    您可以修改父级的web.config以使用位置标记并设置InheritInChildApplications,以便阻止它继承到子应用程序中: http://forums.iis.net/t/994377.aspx