3

在我的 MVC3 应用程序中,当我尝试处理超出最大请求的错误时,我收到了上述错误。

我在应用程序级别处理异常。我正在尝试重定向到位于视图共享文件夹中的错误页面。

如果请求大小超过限制,我将使用下面的代码重定向到错误页面。

 this.Server.ClearError();
 this.Server.Transfer("~/Views/Shared/NotAuthorised.cshtml");

这是我得到的错误。

执行 /SiteName/Views/Shared/NotAuthorised.cshtml 的子请求时出错

4

1 回答 1

4

根据 Microsoft 文档(Error Executing Child Request" Error Message When You Use Server.Transfer or Server.Execute in ASP.NET Page),您不能Server.Transfer在应用程序级错误后使用。

Microsoft Internet 信息服务 (IIS) 根据请求文件的扩展名将 Server.Transfer 或 Server.Execute 请求分派到相应的 Internet 服务器应用程序编程接口 (ISAPI) 扩展名。例如,对 .aspx 页面的请求被调度到 Aspnet_isapi.dll ISAPI 扩展。

在请求被分派到适当的 ISAPI 扩展之后,ISAPI 扩展不能调用另一个 ISAPI 扩展。您收到“症状”部分中列出的错误消息,因为处理对 ASP.NET 页的请求的 Aspnet_isapi.dll 文件无法将请求转发到处理对​​ ASP 页的请求的 Asp.dll 文件。

但是,您可以Response.Redirect(path)像这样使用:

Response.Redirect("Home/About");
于 2012-11-12T13:19:30.487 回答