1

我有在 Visual web developer express 中打开的网站。

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

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

如何指定在这个环境中是一个 dll 的位置 DefaultRedirectHandler?我创建了一个 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>

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

4

1 回答 1

1

添加处理程序时,您应该完全限定其类型。包括名称空间以及您的类型名称。

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

如何:注册 HTTP 处理程序

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

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

为 httpHandlers 添加元素(ASP.NET 设置架构)

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

编辑:

至于调试服务器上正在发生的事情(即按什么顺序调用哪些处理程序),您可能有兴趣查看Glimpse

于 2012-07-01T16:02:32.893 回答