在不需要 ASHX 文件的情况下挂钩 HttpHandler

问题描述

我已经在 SO 和其他论坛上查看了此问题的答案,但还没有看到能够令人满意地解释我如何解决此问题的答案,所以请耐心等待。

我正在开发几个老式的 Asp.Net/C# 网站 (4.6),并且需要一个验证码图像......我已经有一个可以重用的 HttpHandler 类,它利用了另一个实际上生成图像本身。但是我想将处理程序代码保留在它自己的程序集中,而不必将其代码复制并粘贴到我必须发布的每个网站的 ASHX 文件中。有没有一种好的、干净的方法来调用处理程序(实现 IHttpHandler 接口)而不需要 ASHX 文件?

这就是我到目前为止所做的尝试。

web.config:

  <system.webServer>
    <handlers>
      <add name="Captcha" path="*Captcha.jpg" type="MyNamespace.CaptchaImageHandler,CaptchaImageHandler" verb="GET" />
    </handlers>

    ...

  </system.webServer>

处理程序:

namespace MyNamespace
{

    public class CaptchaImageHandler : IHttpHandler
    {
        public bool IsReusable
        {
            get
            {
                return true;
            }
        }
        
        public void ProcessRequest(HttpContext context)
        {        

            ...

        }
    }
}

...在我的网页中,我有一个名为 CaptchaImage 的 html 图像控件,我以这种方式在代码隐藏中更新 Src:

  CaptchaImage.Src = "~/Images/Captcha.jpg?w=160&h=64&(additional arguments for colors,etc.)"

我已经尝试了路径的波浪号方法,并指出了图像文件夹的完整路径(这应该无关紧要,对吧?那里没有“真实”图像),但两种方法似乎都不起作用.使用图像的 URL 直接浏览(处理程序)会给我一个 404。

任何帮助将不胜感激。非常感谢大家,祝你幸福!

解决方法

暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!

如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。

小编邮箱:dio#foxmail.com (将#修改为@)

相关问答

依赖报错 idea导入项目后依赖报错,解决方案:https://blog....
错误1:代码生成器依赖和mybatis依赖冲突 启动项目时报错如下...
错误1:gradle项目控制台输出为乱码 # 解决方案:https://bl...
错误还原:在查询的过程中,传入的workType为0时,该条件不起...
报错如下,gcc版本太低 ^ server.c:5346:31: 错误:‘struct...