我试图在 Global.asax 的 Application_Error 处理程序中进行重定向。一点都不花哨。
private void Application_Error(object sender, EventArgs e)
{
// ...snip...
Server.Transfer(somePath, false);
// ...snip...
}
这在完全信任下工作得很好,但我需要让它在中等信任下工作。我在这里工作的代码需要在共享托管环境中正常运行(不幸的是,我无法控制这个要求)。
但是,当我在我们的开发环境(XP Pro / IIS 5.1)中配置站点以进行测试时:
<system.web>
<trust level="Medium"/>
</system.web>
它失败并出现以下错误:
请求“System.Security.Permissions.SecurityPermission, mscorlib, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089”类型的权限失败。** 在 System.Security.CodeAccessSecurityEngine.Check(对象需求,StackCrawlMark& stackMark,布尔 isPermSet) 在 System.Security.CodeAccessPermission.Demand() 在 System.Web.HttpWorkerRequest.SendResponseFromMemory(IntPtr 数据,Int32 长度) 在 System.Web.HttpWorkerRequest.SendResponseFromMemory(IntPtr 数据,Int32 长度,布尔 isBufferFromUnmanagedPool) 在 System.Web.HttpResponseUnmanagedBufferElement。 System.Web.IHttpResponseElement.Send(HttpWorkerRequest WR) 在 System.Web.HttpWriter.Send(HttpWorkerRequest WR) 在 System.Web.HttpResponse.Flush(布尔 finalFlush) 在 System.Web.HttpResponse.Flush() 在 System.Web.HttpResponse.End() 在 System.Web.HttpServerUtility.Transfer(字符串路径,布尔值 preserveForm)
其他一些值得注意的事情:
- 无论是从 Global.asax 还是从 HttpModule 都会发生这种情况。
- Response.Redirect(somePath) 也会发生这种情况。
感谢您提供的任何见解。我已经在谷歌上搜索了我的 $$ 折扣,但并不高兴。
谢谢!