C# Ashx处理器&x27;未调用processrequest函数
我正在编写一个处理程序来处理一个资源,当实现的IHttpHandler类被写在一个名称空间下时,我面临一个问题 请找到密码 不工作场景 Web.config: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
<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);
}