httpHandlers配置无效的解决方案

2019-08-24 02:46 来源:未知

针对Linux ASP.NET MVC网址中 httpHandlers配置不行的减轻方案

近年有Linux ASP.NET客商反映,在MVC网址的Web.config中增添 httpHandlers 配置用于拍卖自定义类型,不过在运转中并不曾生出预想的职能,服务器再次来到了404(找不到网页)错误。经作者亲自测量检验,在WebForm网址中,httpHandlers节点的配备是卓有效能的,而在MVC中真正无效。假若那几个难题无法缓和,将严重影响Linux ASP.NET的安顿,也影响WIN ASP.NET向Linux迁移的包容性和完整性。

致使httpHandlers无效的来头小编并不曾时间去研讨,为了能够登时缓慢解决那一个主题素材,作者把集中力放到了Global.asax文件的Application_BeginRequest方法上,然后交给如下的减轻方案。

一,在global.asax中增多贰个静态方法:

static bool TryHanler<T>(string ext) where T : IHttpHandler
{
    if (string.IsNullOrEmpty(ext)) return false;
    var context = HttpContext.Current;
    var path = context.Request.AppRelativeCurrentExecutionFilePath;
    if (!path.EndsWith(ext)) return false;
韦德国际1946官网,    var handle = Activator.CreateInstance(typeof(T)) as IHttpHandler;
    if (handle == null) return false;
    handle.ProcessRequest(context);
    context.Response.End();
    return true;
}

评释:那是一个泛型方法,T代表你用于拍卖某些路线的持续自IHttpHandler的自定义类,参数ext是以此管理类所拍卖的呼吁路线的恢弘名(含“.”号)。

二,在global.asax中实现Application_BeginRequest方法,并在该方法中调用TryHandler。如:

protected void Application_BeginRequest(object sender, EventArgs e)
{
    if(TryHandler<myHandler>(".do")) return;
}

注:该管理方案具备通用性,能同期包容 Windows IIS和 Linux Jexus或XSP。

本文永世更新链接地址:

ASP.NET MVC网址中 httpHandlers配置不行的缓慢解决方案 近来有Linux ASP.NET客户反映,在MVC网址的Web.config中加多 httpHandlers 配置用于拍卖自定...

TAG标签: 韦德娱乐1946
版权声明:本文由韦德娱乐1946_韦德娱乐1946网页版|韦德国际1946官网发布于韦德国际1946官网,转载请注明出处:httpHandlers配置无效的解决方案