Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/asp.net/32.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# Ashx处理器&x27;未调用processrequest函数_C#_Asp.net_.net_Httphandler - Fatal编程技术网

C# Ashx处理器&x27;未调用processrequest函数

C# Ashx处理器&x27;未调用processrequest函数,c#,asp.net,.net,httphandler,C#,Asp.net,.net,Httphandler,我正在编写一个处理程序来处理一个资源,当实现的IHttpHandler类被写在一个名称空间下时,我面临一个问题 请找到密码 不工作场景 Web.config: <add name="ResourceHandler" type="PublicSite.Classes.Handlers.ResourceEndpoint, PublicSite" path="Resource.ashx" verb="*" /> <add name="ResourceHandler" type="R

我正在编写一个处理程序来处理一个资源,当实现的IHttpHandler类被写在一个名称空间下时,我面临一个问题

请找到密码

不工作场景

Web.config:

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

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

第二次请求处理程序时,它直接使用构造的对象,因此不会调用construcotr,而直接调用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>

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

您是否使用实际的.ashx文件并将其注册到web配置中?可能是,即使处理程序位于命名空间中,您也只需要在配置行中使用类名,而不需要命名空间?您使用的是哪个版本的IIS?对于6及以下版本,您需要在下注册处理程序,但对于7及以上版本,它位于web.config中的部分。对不起,我已更新了问题。这不是名称空间的原因。processrequest未被调用,404是由于未知原因发出的。@sh1rts我已用问题详细信息更新了问题。我在iis7.5和8.5中进行了尝试,得到了相同的结果。
    [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);
        }