|
| Author | Messages |  |
Pieter Van Tichelen
 Posts:13
Send PM:
 | | 19 Aug 2009 03:50 AM | | Hi,
Just sharing my recent experience... to warn other users and possibly start an investigation? I'm running DNN5.1.1 with Adequation Localization Extensions 1.25 and recently installed PageBlaster. Adequation LE is one of the few localization modules that actually works (believe me, I've even tried most commercially available modules)... The idea is that you have a root page for each language (for example "en", "fr" etc) and then add the structure underneath. The basic install of PageBlaster went fine (after support call see other thread) and my site was still happily running, and pages were returned much faster, as per spec.
As PageBlaster comes with URL redirection for more friendly URLs, I tried the basic one from the manual (for the home page of one language). I won't be needing this feature a lot really soon, but I tried this one setting just the same. Shortly afterwards, all my portals were unavailable with an HTTP 500 error ('The page cannot be displayed because an internal server error has occurred.') and I could find later on in the event viewer the following dreaded type of errors ('Thread being aborted', I really loathe and fear the moments I see that one popping up my event viewer):
AssemblyVersion: 5.1.1 PortalID: 0 PortalName: **** UserID: -1 UserName: ActiveTabID: 38 ActiveTabName: Home RawURL: /Default.aspx AbsoluteURL: /Default.aspx AbsoluteURLReferrer: UserAgent: Mozilla/5.0 (Windows; U; Windows NT 5.1; en-US) AppleWebKit/530.5 (KHTML, like Gecko) Chrome/2.0.172.39 Safari/530.5 DefaultDataProvider: DotNetNuke.Data.SqlDataProvider, DotNetNuke.SqlDataProvider ExceptionGUID: 32b4ce2b-6fb9-4640-88c0-cb5db0a2d319 InnerException: Thread was being aborted. FileName: FileLineNumber: 0 FileColumnNumber: 0 Method: System.Threading.Thread.AbortInternal StackTrace: Message: 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 Adequation.DNN.LocalizationExtensions.HttpModule.ClientRedirect(String url, String reason) at Adequation.DNN.LocalizationExtensions.HttpModule.ProcessRedirectOnHomePageAccess(LocalizationConfiguration configuration) at Adequation.DNN.LocalizationExtensions.HttpModule.context_PreRequestHandlerExecute(Object sender, EventArgs e) Source: Server Naam: ****
I guess LE also has some sort of page redirection ongoing to deal with the languages? This probably conflicts with redirections in the HTTP modules of PageBlaster... Are there any tips or tricks you can give? I'm happy to stay away from the redirections in PageBlaster to keep LE happy, but I think both to be such common modules you might want to investigate.
I've posted this to the support forum of Adequation as well, by the way. If they come up with something, I'll be happy to share it overhere as well.
Kind regards,
Pieter | | | |
| |
| Pieter Van Tichelen
 Posts:13
Send PM:
 | | 19 Aug 2009 10:25 AM | | Response from Ettiene at Adequation (LE): "Hi,
The ThreadAbortException you are reporting is actually not an error. It is a .NET exception used to exit the call stack as fast as possible. When we do a client redirection, there is no need to process any other code after the redirection is registered, for performance reasons. The way to accomplish that is by using an overload of Response.Redirect that ends the request. This internally throws a ThreadAbortException, which is not an error. From our point of view, it is an error on DNN's side to log in the event log, since it is not an error. It should simply be ignored by the logging module. That being said, we have adjusted the code on our side not to log this error.
As for the error 500, it it hard to diagnose. One thing seems sure though, it is on PageBlaster's side. Our extensions never return 500 errors since we trap every error in order to never return 500 errors.
As for SEO / redirection / urls, the best way to go is by using the url friendly provider by iFinity (www.ifinity.com.au) and this is fully supported by our extensions.
If you can continue testing the combination of PageBlaster + LE, and report back, we will make the necessary adjustements if needed. We simply do not have time currently to test this scenario.
Best,
Etienne"
I would say that he probably is right that the Threadabort should not be listed as an error in the event viewer, as this was picked up by me as the cause and starting point of my investigations... Anyway, back to square one. Etienne may be right in stating that the HTTP500s are coming or are caused by the PageBlaster HTTP module... that's my current view as well.
If you come up with any suggestions, I'll be happy to give it a go. Otherwise, I'll probably spend some time later on in my local test environment to set up a closely watched replication and will try to determine the root cause.
Kind regards, Pieter | | | |
| John Mitchell
 Posts:4350
Administrator Send PM:
 | | 19 Aug 2009 10:39 AM | | If they are aborting the thread on redirect then that also short-circuits the Page Life Cycle. When different sets of code are in a shared environment, then short circuiting the Page Life cycle can have unintended consequences. PageBlaster has been coded so that it can handle most of these types of actions, but it gets tricky if PageBlaster is expecting page output and then it is shutoff without warning.
One thing you can try is to switch the positions of the pageBlaster line and the line for this module in the httpModules section of web.config. That will change the order that they are executed in, so it may help.
PageBlaster also has a setting in the Snapsis.PageBlaster.config for attach-filter-early. You can try setting this to "true". Attaching the filter earlier in the pipeline may help for this situation, but it makes it so that you may need more excludes setup in the configuration since attaching it later allows PageBlaster to automatically decide if it should be excluded or not. | | | |
| Pieter Van Tichelen
 Posts:13
Send PM:
 | | 19 Aug 2009 12:35 PM | | Hi John,
I'll probably see if I can get the URL redirection to work later on.
Etienne seems keen to push me towards iFinity for that as he's confident enough from past experience that URL redirecting will work with iFinity & Localization Extensions together.
I'm still not even sure why I got the strange behavior, and what exactly happened at all. Fortunately, it was only in my dev environments. Unfortunately too, as locally I've got more opportunities to spy out what happened exactly. ;) I'll see when I have some time to spare to get cracking at this... anyway, I'll probably have a look at iFinity at some point and see what will fit my needs best.
The non-URL redirecting bits of PageBlaster seem to work fine together with PageLocalization, by the way. So even if I need to plug in iFinity on top of that, that's not too big of a hassle.
Kind regards, Pieter | | | |
| Pieter Van Tichelen
 Posts:13
Send PM:
 | | 12 Nov 2009 03:16 AM | | Just to keep everyone up to date: from a certain version of LE (I think 25 upwards) the strange tread abort has been removed. It works great in combination with PageBlaster (and iFinity URLMaster too). | | | |
|
| Please Register to participate. |
|
Active Forums 4.1 | |