无法在处理程序的子应用程序中加载文件或程序集错误

本文关键字:加载 文件 错误 程序集 应用程序 处理 程序 | 更新日期: 2023-09-27 18:35:14

在IIS中,我有一个父应用程序(默认网站),它有子应用程序。我正在我的父应用程序中编写 http 处理程序,并且此 http 处理程序也将是所有子应用程序的网关,因此当任何子应用程序 URL 命中时,它将通过父应用程序中的 http 处理程序通过。当我尝试打开子应用程序时,它给了我错误

无法加载文件或程序集"Intelligize.QC.Web"或其依赖项之一。系统找不到指定的文件。

这是我在父应用程序中的 web.config 文件

  <httpHandlers>
   <add verb="*" path="*" type="Intelligize.QC.Web.AuthorizationHandler, Intelligize.QC.Web" validate="true" />
 </httpHandlers>

请在此解决方案中帮助我。我已经浪费了太多时间

无法在处理程序的子应用程序中加载文件或程序集错误

子应用程序继承父应用程序 web.config 文件。

将此

写在父应用程序 web.config 文件上,以避免在子应用程序中继承 web.config 文件:

<location path="." inheritInChildApplications="false">
    <system.web>
        ...
    </system.web>
</location>

有关此类错误的更多信息,请启用FusionLog。在这里你可以阅读如何。在日志文件中,您可以查看程序集加载信息并正确修复它。

由于您提到此处理程序正在充当子应用程序的网关,因此我认为此处理程序在父应用程序的上下文中具有作用,并且在子应用程序中不需要。如果是这种情况,那么您可以简单地将其从子应用程序的 web.config 中删除。为了做到这一点,你需要

  1. 通过在处理程序配置中添加 name 属性,在父应用程序的 web.config 中为处理程序命名。

    <httpHandlers> <add verb="*" path="*" type="Intelligize.QC.Web.AuthorizationHandler, Intelligize.QC.Web" validate="true" name="MyHandler" /> </httpHandlers>

  2. 从孩子的 web.config 中删除此处理程序

    <httpHandlers> <remove name="MyHandler" /> </httpHandlers>