当System.Web.HttpResponse.End()被称为System.Thread.Abort被触发时,我猜测是(或者触发)一个异常?我有一些日志记录,这被列在日志文件中…
第一次机会
exception of type 'System.Threading.ThreadAbortException' occurred in mscorlib.dll 12/14/2008 01:09:31:: Error in Path :/authenticate Raw Url :/authenticate Message :Thread was being aborted. Source :mscorlib Stack Trace : at System.Threading.Thread.AbortInternal() at System.Threading.Thread.Abort(Object stateInfo) at System.Web.HttpResponse.End() at DotNetOpenId.Response.Send() at DotNetOpenId.RelyingParty.AuthenticationRequest.RedirectToProvider() at MyProject.Services.Authentication.OpenIdAuthenticationService.GetOpenIdPersonaDetails(Uri serviceUri) in C:\Users\Pure Krome\Documents\Visual Studio 2008\Projects\MyProject\Projects\Services\Authentication\OpenIdAuthenticationService.cs:line 108 at MyProject.Mvc.Controllers.AuthenticationController.Authenticate() in C:\Users\Pure Krome\Documents\Visual Studio 2008\Projects\MyProject\Projects\MVC Application\Controllers\AuthenticationController.cs:line 69 TargetSite :Void AbortInternal() A first chance exception of type 'System.Threading.ThreadAbortException' occurred in Ackbar.Mvc.DLL An exception of type 'System.Threading.ThreadAbortException' occurred in Ackbar.Mvc.DLL but was not handled in user code
这是正常的行为,是否可以优雅地中止,而不是(什么样子)突然中止?
更新
到目前为止,它是by design的普通人口普查。所以我想知道是否可能我们可以采取这个问题,看看我们是否可以调整代码,使它不觉得我们过早地结束线程,并优雅地退出…可能?代码示例?
解决方法
是的,这是设计的。微软甚至还有
documented。你还能如何停止执行程序的其余部分?