我正在开发一个.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/
它在第二个网址中查找配置文件。有谁知道我可以向微软提交错误的地方?
答案 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();
}
}
}