在旧的Web表单站点项目中,使用esclude可以从管道中获取nancy.Owin aspx页面的方法,而不编译吗?

当我配置 nancy 后回发并且请求是aspx页面时,回发被删除,因为 nancy 删除了该页面并重新调用了该页面。

public void NancyConfig(IAppBuilder app)
{
    app.UseNancy(options =>
    {
        options.Bootstrapper = new MyBootstrapper();
        options.PerformPassThrough = (context => context.Response.StatusCode == HttpStatusCode.NotFound);
    });

    app.UseStageMarker(PipelineStage.MapHandler);
}
options.PerformPassThrough擦除回发内容并调用页面。因为不是后退还可以,但是在后退详细说明中会出现一个无限循环。

如何配置NancyFx在passtrought选项中不擦除回发?

最佳答案

我已经修改了nancy official 1.4的源代码,使其从管道中避开.aspx和其他页面,返回请求回发,将其删除。
您可以尝试此修改here

  • 文件已修改:Nancy/src/Nancy/Owin/NancyMiddleware.cs
  • 这是要在第82行应用的代码:
                //Check if the webform is not present inthe path ".aspx"
                //if present move to next
                if (owinRequestPath.ToLowerInvariant().Contains(".aspx")
                || owinRequestPath.ToLowerInvariant().Contains(".asmx")
                || owinRequestPath.ToLowerInvariant().Contains(".ascx")
                || owinRequestPath.ToLowerInvariant().Contains(".ashx")
                || owinRequestPath.ToLowerInvariant().Contains(".asmx")
                || owinRequestPath.ToLowerInvariant().Contains(".asax")
                ) return next.Invoke(environment);
    
  • 关于asp.net - 使用Nancy whit Owin和WebForms,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/48205434/

    10-12 21:00