c# - Page_Init 方法异常中的 DotNetNuke 重定向

标签 c# asp.net dotnetnuke

如果不满足某些条件,我有一个模块正在生成 Response.Redirect 到不同的页面。但是,我注意到事件日志中有许多与此相关的错误。我是否正确,由于 DNN 使用的页面上模块的动态加载,我不能不应该在 Init 方法中执行重定向?

这里是异常(exception):

System.Threading.ThreadAbortException: Thread was being aborted. at System.Threading.Thread.AbortInternal() at System.Threading.Thread.Abort(Object stateInfo) at System.Web.HttpResponse.End() at System.Web.HttpResponse.Redirect(String url, Boolean endResponse) at XXXX.Controllers.BaseNavigationController.NavigateTo(String url, NameValueCollection qsParams, Boolean endResponse) in C:\Projects\ASP_NET\XXXX\XXXX.Controllers\BaseNavigationController.cs:line 75 at XXXX.Controllers.BaseNavigationController.NavigateTo(String url) in C:\Projects\ASP_NET\XXXX\XXXX.Controllers\BaseNavigationController.cs:line 45 at XXXX.UI.DesktopModules.QuoteStepModuleBase.CheckIfOnValidStep() in C:\Projects\ASP_NET\XXXX\WebRoot\XXXX.UI\BaseClasses\QuoteStepModuleBase.cs:line 64 at XXXX.UI.DesktopModules.QuoteStepModuleBase.QuoteStepModuleBase_Init(Object sender, EventArgs e) in C:\Projects\ASP_NET\XXXX\WebRoot\XXXX.UI\BaseClasses\QuoteStepModuleBase.cs:line 31 at System.Web.UI.Control.OnInit(EventArgs e) at System.Web.UI.UserControl.OnInit(EventArgs e) at System.Web.UI.Control.InitRecursive(Control namingContainer) at System.Web.UI.Control.AddedControl(Control control, Int32 index) at System.Web.UI.ControlCollection.Add(Control child) at DotNetNuke.UI.Modules.ModuleHost.InjectModuleContent(Control content) in C:\Projects\3rdParty\DotNetNuke_Community_05.01.01_Source\Library\UI\Modules\ModuleHost.vb:line 178 at DotNetNuke.UI.Modules.ModuleHost.CreateChildControls() in C:\Projects\3rdParty\DotNetNuke_Community_05.01.01_Source\Library\UI\Modules\ModuleHost.vb:line 428 at System.Web.UI.Control.EnsureChildControls() at DotNetNuke.UI.Modules.ModuleHost.get_ModuleControl() in C:\Projects\3rdParty\DotNetNuke_Community_05.01.01_Source\Library\UI\Modules\ModuleHost.vb:line 95 at DotNetNuke.UI.Containers.Container.get_ModuleControl() in C:\Projects\3rdParty\DotNetNuke_Community_05.01.01_Source\Library\UI\Containers\Container.vb:line 123 at DotNetNuke.UI.Containers.Container.ProcessModule() in C:\Projects\3rdParty\DotNetNuke_Community_05.01.01_Source\Library\UI\Containers\Container.vb:line 364 at DotNetNuke.UI.Containers.Container.SetModuleConfiguration(ModuleInfo configuration) in C:\Projects\3rdParty\DotNetNuke_Community_05.01.01_Source\Library\UI\Containers\Container.vb:line 548 at DotNetNuke.UI.Skins.Pane.InjectModule(ModuleInfo objModule) in C:\Projects\3rdParty\DotNetNuke_Community_05.01.01_Source\Library\UI\Skins\Pane.vb:line 402

最佳答案

Response.Redirect抛出 ThreadAbortException停止页面的执行。这不是问题,可以安全地忽略。您可能会查看记录异常的位置,并捕获 ThreadAbortException分开,这样你就可以避免记录它。

您还可以将 false 作为第二个参数传递给 Response.Redirect ,这将不会结束响应,也不会抛出异常,但代价是当页面不会呈现给客户端时,在服务器上呈现页面。

关于c# - Page_Init 方法异常中的 DotNetNuke 重定向,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1917304/

相关文章:

c# - 压缩webapi POST的正确方法

c# - 资源 (resx) 文件导入

asp.net - 在 asp.net 中显示多个状态消息

asp.net - VS 2012 中缺少 OnReceiveAsync 方法

CSS 悬停在 IE8 中不起作用

c# - 使用时区将字符串格式化为日期时间

c# - 如何在 C# 中比较字符串和枚举

c# - 删除用户后 UserID 编号乱序

html - DNN 5.02 和 IE 11

DotNetNuke 6.1.3 中的 Javascript