不调用 Ashx 处理程序的进程请求函数



我正在编写一个处理程序来处理资源,当实现的IHttpHandler类在命名空间下编写时,我遇到了一个问题。

请找到代码

不工作方案

网络配置:

<add name="ResourceHandler" type="PublicSite.Classes.Handlers.ResourceEndpoint, PublicSite" path="Resource.ashx" verb="*" />

属性: PublicSite.Classes.Handlers.ResourceEndpoint.IsReusable=False

问题:构造函数命中,并且未调用进程请求。构造类的对象,即构造函数被命中,但在调用进程请求之前由 404 失败。

工作场景

网络配置:

<add name="ResourceHandler" type="ResourceEndpoint,PublicSite" path="Resource.ashx" verb="*" />

等级: PublicSite.Classes.Handlers.ResourceEndpoint.IsReusable=True

在调用进程请求之前,构造函数被 404 命中并失败。

第二次,当我们请求处理程序时,它会立即使用构造的对象,因此不会调用 construcotor,而是直接调用 ProcessRequest。顺便说一下,在第二次调用中处理程序正在工作。

我不需要可重用的属性。有人可以帮我找到问题吗?谢谢。

你能向我确认你的 web.config 和处理程序本身如下所示吗?(这是来自 IIS 7.5 下托管的项目)

网络配置: -

  <system.webServer>
    <handlers>
      <add name="customerHandler" 
           preCondition="integratedMode" 
           verb="*" 
           path="customerHandler.ashx"
           type="GlassCMS.HttpHandlers.CustomerHandler, GlassCMS"/>
.
.
.
    </handlers>
  </system.webServer>

HttpHandler: -

    [WebService(Namespace = "http://{redacted.com}/json-http-handlers/")]
    [WebServiceBinding(ConformsTo = WsiProfiles.BasicProfile1_1)]
    public class CustomerHandler : IHttpHandler
    {
        public bool IsReusable
        {
            get { return false; }
        }
        public void ProcessRequest(HttpContext context)
        {
            string json = string.Empty;
            // code to do whatever here...
            context.Response.Write(json);
        }

如果你愿意,我也可以包括JavaScript(或者你可以在这里发布你的)。上面的这个例子来自工作代码。

最新更新