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

时间:2016-02-18 10:25:57

标签: c# asp.net .net iis

在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>

请帮我解决这个问题。我已经浪费了太多时间

3 个答案:

答案 0 :(得分:1)

有关此类错误的更多信息,请启用FusionLog。 Here你可以阅读如何。在日志文件中,您可以看到装配负载信息并正确修复它。

答案 1 :(得分:1)

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

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

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

答案 2 :(得分:0)

由于您提到此处理程序正在作为子应用程序的网关工作,因此我假设此处理程序在父应用程序的上下文中具有角色,而在子应用程序中不需要它。如果是这种情况,那么您只需将其从子应用程序的web.config中删除即可。为了做到这一点,你需要

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

    &LT; HttpHandlers的&GT; &LT;添加动词=&#34; &#34;路径=&#34; &#34; type =&#34; Intelligize.QC.Web.AuthorizationHandler,Intelligize.QC.Web&#34;验证=&#34;真&#34;命名=&#34;&MyHandler的#34; /&GT; &LT; / HttpHandlers的&GT;

  2. 从子网站web.config

    中删除此处理程序

    &LT; HttpHandlers的&GT; &LT;删除name =&#34; MyHandler&#34; /&GT; &LT; / HttpHandlers的&GT;