asp.net - 为什么需要在子 asp.net 项目中包含父 dll?

标签 asp.net asp.net-mvc-2 iis-7

我有一个新创建的 asp.net MVC 2.0 应用程序,它位于与现有 asp.net webforms 应用程序完全不同的解决方案中。

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

有一件事让我完全困惑,Webforms 应用程序使用了与我的 MVC 应用程序无关的第三方 DLL,但是如果不将该 DLL 包含在 MVC\bin 目录中,我就无法使用 MVC 应用程序。为什么需要这个?它不是该应用程序的一部分吗?它现在甚至给我带来了问题,所以我更加好奇......

为什么在我的 MVC 应用程序中需要对 DLL 的依赖?

最佳答案

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

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

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

关于asp.net - 为什么需要在子 asp.net 项目中包含父 dll?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3320642/

相关文章:

asp.net - 在默认应用程序池中关闭回收是否安全

asp.net-mvc - 在 IIS7 中运行时无法在 ASP.NET MVC View 中放置断点

c# - 文本与合并单元格中心的 EPPlus 垂直对齐不起作用

C# Json 字符串的等效类

asp.net - BC30560 : 'ExtensionAttribute' is ambiguous in the namespace 'System.Runtime.CompilerServices'

css - DXImageTransform.Microsoft.AlphaImageLoader 相对?

asp.net - IControllerFactory 'MyWebSite.WebUI.Infrastructure.NinjectControllerFactory' 没有返回名称为 'Admin' 的 Controller

asp.net - 重定向URL后为什么会出现I'm getting “HTTP Error 403.14 - Forbidden”错误?

c# - 在 ASP.Net MVC 中以单个方法返回 View 和文件

asp.net-mvc - 用于电子邮件创建和发送的 ASP.Net MVC 后台线程