在我的MVC3应用程序中,当我尝试处理超出最大请求数的错误时,我收到了上述错误。
我正在应用程序级别处理异常。我正在尝试重定向到位于视图的“共享”文件夹中的错误页面。
如果请求大小超出限制,我正在使用以下代码重定向到错误页面。
this.Server.ClearError();
this.Server.Transfer("~/Views/Shared/NotAuthorised.cshtml");
这是我得到的错误。
执行/SiteName/Views/Shared/NotAuthorised.cshtml的子请求时出错
答案 0 :(得分: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.dll文件,该文件处理对ASP的请求 页。
但是,你可以像这样使用Response.Redirect(path)
:
Response.Redirect("Home/About");