未调用 Ashx 处理程序的 processrequest 函数

Ashx handler's processrequest function is not called

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

请找代码

不工作场景

Web.config:

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

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

问题:命中了构造函数,但未调用 ProcessRequest。构造 class 的对象,即 Constructor 被命中,但是在调用 processrequest 之前失败 404。

工作场景

Web.config:

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

Class: PublicSite.Classes.Handlers.ResourceEndpoint.IsReusable=True

在调用 processrequest 之前构造函数被命中并失败 404。

第二次请求处理程序时,它直接使用构造的对象,因此不调用 constructr 并直接调用 ProcessRequest。顺便说一句,在第二次调用中,处理程序正在工作。

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

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

web.config:-

  <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(或者您可以在此处添加您的 post)。上面的这个例子来自工作代码。