我有一个ASP:NET Web项目,它带有一个简单的HTTPHandler,用于过滤掉来自外部IP的请求。 代码本身有效,但 HTTPHandler阻止我的页面加载。没错。没有无限的负荷。这只是一个空白页面。
如果我删除配置中的引用,它加载完全正常。它肯定是由HTTPHandler引起的。我已经逐步完成了处理程序,代码肯定已经到达,只是当处理程序完成时,页面不会像它应该的那样加载。
这是代码。
public class SecurityHttpHandler : IHttpHandler
{
public bool IsReusable
{
get { return false; }
}
public void ProcessRequest(HttpContext context)
{
string ipAddress = context.Request.UserHostAddress;
if (!IsValidIpAddress(ipAddress))
{
context.Response.StatusCode = 403;
}
}
private bool IsValidIpAddress(string ipAddress)
{
return true; //for the time being, this will always return true
}
public void Dispose() { } //clean
}
处理程序存在于另一个项目中(我有对程序集的引用),并且httphandler在我的webprojects web.config中注册:
<handlers>
<add name="SecurityHttpHandler" verb="*"
path="*Default.aspx"
type="MyProjects.CommonResources.Web.SecurityHttpHandler"
resourceType="Unspecified" />
</handlers>
我在集成模式下运行IIS 7.5。 .net framework 4.0。
如果我要添加更多代码,请告诉我。我从我的web项目中排除了代码,因为处理程序本身似乎是asp.net管道中的早期原因。