在asp.net中没有调用Http处理程序?

时间:2012-07-01 14:46:02

标签: asp.net

我有在Visual Web开发人员快递中打开的网站。

在web.config中,我有一个定义为B的处理程序。

 <add verb="GET,POST" path="*/faq*" validate="false" type="DefaultRedirectHandler" />

如何指定DefaultRedirectHandler这个环境中的dll位置? 我创建了一个handler.dll,它包含从bin目录中的IHttpHandler派生的B类,但有迹象表明它没有被使用。

另外,我试过

<system.webServer>
        <validation validateIntegratedModeConfiguration="false" />
        <handlers>
            <add name="ASP Wild" path="*" verb="*" modules="IsapiModule" scriptProcessor="C:\Windows\Microsoft.NET\Framework\v4.0.30319\aspnet_isapi.dll" resourceType="Unspecified" requireAccess="None" preCondition="classicMode,runtimeVersionv4.0,bitness32" />
          <add name="SampleHandler" verb="*"
         path="*"
         type="DefaultRedirectHandler,handler.dll"
         resourceType="Unspecified" />

        </handlers>

如果在其他地方调用此处理程序,我是否可以查看一些日志。

1 个答案:

答案 0 :(得分:1)

添加处理程序时,应完全限定其类型。包括命名空间和类型名称。

<httpHandlers>
  <add verb="*" path="*"
    type="MyHandlerAssembly.With.A.NameSpace.IISHandler1, MyHandlerAssembly" />
</httpHandlers>

How to: Register HTTP Handlers

处理程序所在的程序集必须存在于Web应用程序的bin目录或系统程序集缓存中。

有关HttpHandler配置的更多详细信息,请参阅以下内容。

add Element for httpHandlers (ASP.NET Settings Schema)

请记住,默认情况下会添加许多ASP.NET处理程序,并由系统machine.config和root web.config(在.NET库目录中)定义。如果这些处理程序中的任何一个与您的路径匹配,则可以先执行。如果他们关闭响应,那么你的处理程序可能永远不会被执行。

编辑:

至于调试服务器上发生了什么(即调用的处理程序是什么),您可能有兴趣查看Glimpse