重定向最终会在应用程序之外

时间:2017-04-20 15:50:14

标签: azure redirect asp.net-core

我正在开发一个.Net Core Web应用程序,我们希望能够将一种类型的URL重定向到我们的自定义错误页面。该站点托管在Azure上,似乎该错误未在应用程序中处理。以下是我正在使用的网址类型:

www.mywebsite.com/%22http://www.yahoo.com/%22

显示的错误页面如下:

The page cannot be displayed because an internal server error has occurred.

此外,当我检查Azure上的实时HTTP流量时,它不会显示错误。

编辑: 显然,azure根本无法处理此类型的请求:https://azure.microsoft.com/%22/http://www.google.com/

它在第二个网址中查找配置文件。有谁知道我可以向微软提交错误的地方?

1 个答案:

答案 0 :(得分:0)

我没有在Azure上测试过这个,但它可以在我们的服务器上运行。

Startup类中配置异常处理。

public void Configure(IApplicationBuilder app, IHostingEnvironment env, ILoggerFactory loggerFactory)
{
    // ...
    if (env.IsDevelopment())
    {
        app.UseDeveloperExceptionPage();
    }
    else
    {
        app.UseExceptionHandler("/error");
    }
    // ...
    app.UseStatusCodePagesWithRedirects("/error/{0}");
    // ...
}

错误控制器。

[Route("[controller]")]
public class ErrorController : Controller
{
    [Route("")]
    public IActionResult Index()
    {
        return View();
    }

    [Route("{httpStatusCode}")]
    public IActionResult Index(int httpStatusCode)
    {
        // handle by error code
        switch (httpStatusCode)
        {
            case (int)HttpStatusCode.NotFound:
                return View("NotFound");
            default:
                return View();
        }
    }
}