Bugs in the new Release of Blogengine.NET 2.8

Apr 21, 2013 at 6:20 AM
Thank you for the new release of Blogengine.NET 2.8. I just upgrade my site and started to see some errors in the file logger.txt like this:

Message : Exception of type 'System.Web.HttpUnhandledException' was thrown.
Source : System.Web
StackTrace : at System.Web.UI.Page.HandleError(Exception e)
at System.Web.UI.Page.ProcessRequestMain(Boolean includeStagesBeforeAsyncPoint, Boolean includeStagesAfterAsyncPoint)
at System.Web.UI.Page.ProcessRequest(Boolean includeStagesBeforeAsyncPoint, Boolean includeStagesAfterAsyncPoint)
at System.Web.UI.Page.ProcessRequest()
at System.Web.UI.Page.ProcessRequestWithNoAssert(HttpContext context)
at System.Web.UI.Page.ProcessRequest(HttpContext context)
at ASP.post_aspx.ProcessRequest(HttpContext context)
at System.Web.HttpApplication.CallHandlerExecutionStep.System.Web.HttpApplication.IExecutionStep.Execute()
at System.Web.HttpApplication.ExecuteStep(IExecutionStep step, Boolean& completedSynchronously)
TargetSite : Boolean HandleError(System.Exception)
Message : An item with the same key has already been added.
Source : mscorlib
StackTrace : at System.ThrowHelper.ThrowArgumentException(ExceptionResource resource)
at System.Collections.Generic.Dictionary`2.Insert(TKey key, TValue value, Boolean add)
at BlogEngine.Core.AuthorProfile.get_Profiles() in c:\rtur\src\Codeplex\be\BlogEngine\BlogEngine.Core\AuthorProfile.cs:line 157
at BlogEngine.Core.AuthorProfile.GetProfile(String username) in c:\rtur\src\Codeplex\be\BlogEngine\BlogEngine.Core\AuthorProfile.cs:line 0
at post.OnInit(EventArgs e)
at System.Web.UI.Control.InitRecursive(Control namingContainer)
at System.Web.UI.Page.ProcessRequestMain(Boolean includeStagesBeforeAsyncPoint, Boolean includeStagesAfterAsyncPoint)

TargetSite : Void ThrowArgumentException(System.ExceptionResource)

This is another error:

Message : A potentially dangerous Request.Path value was detected from the client (:).
Source : System.Web
StackTrace : at System.Web.HttpRequest.ValidateInputIfRequiredByConfig()
at System.Web.HttpApplication.PipelineStepManager.ValidateHelper(HttpContext context)

TargetSite : Void ValidateInputIfRequiredByConfig()

This is another error:

Message : Exception of type 'System.Web.HttpUnhandledException' was thrown.
Source : System.Web
StackTrace : at System.Web.UI.Page.HandleError(Exception e)
at System.Web.UI.Page.ProcessRequestMain(Boolean includeStagesBeforeAsyncPoint, Boolean includeStagesAfterAsyncPoint)
at System.Web.UI.Page.ProcessRequest(Boolean includeStagesBeforeAsyncPoint, Boolean includeStagesAfterAsyncPoint)
at System.Web.UI.Page.ProcessRequest()
at System.Web.UI.Page.ProcessRequestWithNoAssert(HttpContext context)
at System.Web.UI.Page.ProcessRequest(HttpContext context)
at ASP.post_aspx.ProcessRequest(HttpContext context)
at System.Web.HttpApplication.CallHandlerExecutionStep.System.Web.HttpApplication.IExecutionStep.Execute()
at System.Web.HttpApplication.ExecuteStep(IExecutionStep step, Boolean& completedSynchronously)
TargetSite : Boolean HandleError(System.Exception)
Message : Collection was modified; enumeration operation may not execute.
Source : mscorlib
StackTrace : at System.ThrowHelper.ThrowInvalidOperationException(ExceptionResource resource)
at System.Collections.Generic.List1.Enumerator.MoveNextRare()
at System.Collections.Generic.List
1.Enumerator.MoveNext()
at BlogEngine.Core.Post.GetPostsByCategory(Category cat) in c:\rtur\src\Codeplex\be\BlogEngine\BlogEngine.Core\Post.cs:line 963
at App_Code.Controls.CategoryList.BindCategories()
at App_Code.Controls.CategoryList.get_Html()
at App_Code.Controls.CategoryList.RenderControl(HtmlTextWriter writer)
at System.Web.UI.Control.RenderChildrenInternal(HtmlTextWriter writer, ICollection children)
at System.Web.UI.Control.RenderChildren(HtmlTextWriter writer)
at App_Code.Controls.WidgetBase.Render(HtmlTextWriter writer)
at System.Web.UI.Control.RenderControlInternal(HtmlTextWriter writer, ControlAdapter adapter)
at System.Web.UI.Control.RenderControl(HtmlTextWriter writer, ControlAdapter adapter)
at System.Web.UI.Control.RenderControl(HtmlTextWriter writer)
at System.Web.UI.Control.RenderChildrenInternal(HtmlTextWriter writer, ICollection children)
at System.Web.UI.Control.RenderChildren(HtmlTextWriter writer)
at System.Web.UI.Control.Render(HtmlTextWriter writer)
at System.Web.UI.Control.RenderControlInternal(HtmlTextWriter writer, ControlAdapter adapter)
at System.Web.UI.Control.RenderControl(HtmlTextWriter writer, ControlAdapter adapter)
at System.Web.UI.Control.RenderControl(HtmlTextWriter writer)
at System.Web.UI.Control.RenderChildrenInternal(HtmlTextWriter writer, ICollection children)
at System.Web.UI.Control.RenderChildren(HtmlTextWriter writer)
at App_Code.Controls.DefaultWidgetContainer.Render(HtmlTextWriter writer)
at System.Web.UI.Control.RenderControlInternal(HtmlTextWriter writer, ControlAdapter adapter)
at System.Web.UI.Control.RenderControl(HtmlTextWriter writer, ControlAdapter adapter)
at System.Web.UI.Control.RenderControl(HtmlTextWriter writer)
at System.Web.UI.Control.RenderChildrenInternal(HtmlTextWriter writer, ICollection children)
at System.Web.UI.Control.RenderChildren(HtmlTextWriter writer)
at App_Code.Controls.WidgetZone.Render(HtmlTextWriter writer)
at System.Web.UI.Control.RenderControlInternal(HtmlTextWriter writer, ControlAdapter adapter)
at System.Web.UI.Control.RenderControl(HtmlTextWriter writer, ControlAdapter adapter)
at System.Web.UI.Control.RenderControl(HtmlTextWriter writer)
at System.Web.UI.Control.RenderChildrenInternal(HtmlTextWriter writer, ICollection children)
at System.Web.UI.HtmlControls.HtmlForm.RenderChildren(HtmlTextWriter writer)
at System.Web.UI.HtmlControls.HtmlContainerControl.Render(HtmlTextWriter writer)
at System.Web.UI.HtmlControls.HtmlForm.Render(HtmlTextWriter output)
at System.Web.UI.Control.RenderControlInternal(HtmlTextWriter writer, ControlAdapter adapter)
at System.Web.UI.Control.RenderControl(HtmlTextWriter writer, ControlAdapter adapter)
at System.Web.UI.HtmlControls.HtmlForm.RenderControl(HtmlTextWriter writer)
at ASP.themes_webadicto_site_master.__Render__control1(HtmlTextWriter __w, Control parameterContainer)
at System.Web.UI.Control.RenderChildrenInternal(HtmlTextWriter writer, ICollection children)
at System.Web.UI.Control.RenderChildren(HtmlTextWriter writer)
at System.Web.UI.Control.Render(HtmlTextWriter writer)
at System.Web.UI.Control.RenderControlInternal(HtmlTextWriter writer, ControlAdapter adapter)
at System.Web.UI.Control.RenderControl(HtmlTextWriter writer, ControlAdapter adapter)
at System.Web.UI.Control.RenderControl(HtmlTextWriter writer)
at System.Web.UI.Control.RenderChildrenInternal(HtmlTextWriter writer, ICollection children)
at System.Web.UI.Control.RenderChildren(HtmlTextWriter writer)
at BlogEngine.Core.Web.Controls.BlogBasePage.Render(HtmlTextWriter writer) in c:\rtur\src\Codeplex\be\BlogEngine\BlogEngine.Core\Web\Controls\BlogBasePage.cs:line 243
at System.Web.UI.Control.RenderControlInternal(HtmlTextWriter writer, ControlAdapter adapter)
at System.Web.UI.Control.RenderControl(HtmlTextWriter writer, ControlAdapter adapter)
at System.Web.UI.Control.RenderControl(HtmlTextWriter writer)
at System.Web.UI.Page.ProcessRequestMain(Boolean includeStagesBeforeAsyncPoint, Boolean includeStagesAfterAsyncPoint)
TargetSite : Void ThrowInvalidOperationException(System.ExceptionResource)


The site seems to works normal but the errors captured in the logger.txt captured my attention.
Apr 21, 2013 at 10:46 AM
I am receiving this error with BE 2.8.0.0



wwwroot\admin\htmlEditor.ascx(3): error CS0433: The type 'ASP.admin_tinymce_ascx' exists in both 'c:\Windows\Microsoft.NET\Framework\v4.0.30319\Temporary ASP.NET Files\root\6c601a29\d409aa0\App_Web_uqc3az4o.dll' and 'c:\Windows\Microsoft.NET\Framework\v4.0.30319\Temporary ASP.NET Files\root\6c601a29\d409aa0\App_Web_tinymce.ascx.fdf7a39c.jd5kh7gr.dll'

Source : System.Web
Coordinator
Apr 21, 2013 at 4:30 PM
kjenm wrote:
Thank you for the new release of Blogengine.NET 2.8. I just upgrade my site and started to see some errors in the file logger.txt like this:
...
The site seems to works normal but the errors captured in the logger.txt captured my attention.
You can try to modify httpRuntime in web.config to allow these characters:
<httpRuntime enableVersionHeader="false" useFullyQualifiedRedirectUrl="true" maxRequestLength="16384" 
executionTimeout="3600" requestLengthDiskThreshold="16384" requestValidationMode="2.0" 
requestPathInvalidCharacters="&amp;,:,?" />
The "requestPathInvalidCharacters" will tell ASP.NET to allow query string with "?" etc. This should take care of those "potentially dangerous" request errors and we can convert them to URL-safe format later.
Apr 21, 2013 at 8:35 PM
Edited Apr 21, 2013 at 8:38 PM
Hi rtur, thanks for the advice. I added the requestPathInvalidCharacters code but still some errors are catched by the logger.txt

This is one of those:
Date: 4/21/2013 12:23:45 PM
Url : http://[my-website]/image.axd?picture=[image.jpg]
Raw Url : /image.axd?picture=[image.jpg]
Message : A potentially dangerous Request.Path value was detected from the client (?).
Source : System.Web
StackTrace :    at System.Web.HttpRequest.ValidateInputIfRequiredByConfig()
   at System.Web.HttpApplication.PipelineStepManager.ValidateHelper(HttpContext context)
TargetSite : Void ValidateInputIfRequiredByConfig()
This is another case:
Date: 4/21/2013 11:11:05 AM
Url : http://[my-website]/category/ http:/[my-website]/post/[post-slug]
Raw Url : /category/ http:/[my-website]/post/[post-slug]
Message : A potentially dangerous Request.Path value was detected from the client (:).
Source : System.Web
StackTrace :    at System.Web.HttpRequest.ValidateInputIfRequiredByConfig()
   at System.Web.HttpApplication.PipelineStepManager.ValidateHelper(HttpContext context)
TargetSite : Void ValidateInputIfRequiredByConfig()
Don't know if the urls that caused the errors where some kind of attack to the web, because they don't seem to be valid links created by the blog.
Apr 22, 2013 at 1:13 AM
Hello, I found another issue the new BE 2.8. When I publish a post using Windows Live Writer, if I don't explicitly write the slug for it, the post gets published without a URL. Something like this:
http://[my-website]/post/
And when I click on the title it throws a 404 not found error

Before in BE 2.7 when posting using Windows Live Writer, the slug was automatically filled by BE. Now in BE 2.8 the automatic slug creation only works when creating a post using the online editor.

Also when I explicitly write the slug for a post using Windows Live Writer, BE 2.8 admits the creation of two post with the same slug URL.

Regards
May 7, 2013 at 12:41 PM
kjenm wrote:
Hello, I found another issue the new BE 2.8. When I publish a post using Windows Live Writer, if I don't explicitly write the slug for it, the post gets published without a URL. Something like this:
http://[my-website]/post/
And when I click on the title it throws a 404 not found error

Before in BE 2.7 when posting using Windows Live Writer, the slug was automatically filled by BE. Now in BE 2.8 the automatic slug creation only works when creating a post using the online editor.

Also when I explicitly write the slug for a post using Windows Live Writer, BE 2.8 admits the creation of two post with the same slug URL.

Regards
I too have the same issue
Coordinator
May 7, 2013 at 6:56 PM
I'll be releasing a small patch, probably this coming weekend, addressing few issues including described here. Thanks for bringing this up.
May 8, 2013 at 11:46 AM
rtur wrote:
I'll be releasing a small patch, probably this coming weekend, addressing few issues including described here. Thanks for bringing this up.
Thank you, waiting for it
May 8, 2013 at 6:38 PM
rtur wrote:
I'll be releasing a small patch, probably this coming weekend, addressing few issues including described here. Thanks for bringing this up.
Thank you rtur!!
May 9, 2013 at 7:59 AM
Urls are showing wrong (some other contents), refreshing will load the correct content. Am using XML as data storage.
May 11, 2013 at 6:21 AM
Hello, I found another bug in this new version of BE 2.8. The redirection policy of WWW subdomains doesn't work. I configured the redirecting of a non WWW URL to a WWW URL but it doesn't redirect. It works with the root URL only but not with the urls of the posts.

This issue has a negative effect in seo, because is generating duplicate content. Hope this issue get fixed soon :(
May 11, 2013 at 10:04 AM
Sorry but I found one more error in BE 2.8. The controls for delete, edit o move a widget are gone in this version.
May 12, 2013 at 7:16 AM
Hi Kjenm,

It is confirmed that BE 2.8 subdomain "www" policy does not work for urls other than the root.

Going here:

http://www.demo.bloggersonline.com/post/newsletter-template

Does not redirect with a 301 to

http://demo.bloggersonline.com/post/newsletter-template


But, the root does work:

Going here:

http://www.demo.bloggersonline.com

Does Redirects to

http://demo.bloggersonline.com

with the subdomain "www" removed from the url.

But, this only works for the root domain

demo.bloggersonline.com

Any pages,posts, categories, keywords, and etc it does not work.

And like what Kjenm said it does effect SEO because "www" is an actual subdomain and is treated as a seperate website.


So OneWebsite.Com and www.OneWebsite.com in the eyes of the search engines are actually two different websites.

http://support.google.com/webmasters/bin/answer.py?hl=en&answer=44231


As we are on the topic of SEO I notice that the capitializion of urls does matter too.

Need to have a way to enforce all "lower" caps for all urls.
Coordinator
May 12, 2013 at 6:13 PM
Have no way of verifying it, but possibly it is due to extension-less URLs. Can someone check if changing from:
if (context.Request.PhysicalPath.EndsWith(".aspx", StringComparison.OrdinalIgnoreCase))
to:
if (context.Request.PhysicalPath.EndsWith(".aspx", StringComparison.OrdinalIgnoreCase) ||
                context.Request.CurrentExecutionFilePathExtension.Trim().ToLower() == BlogConfig.FileExtension.Trim().ToLower())
in the BlogEngine.Core.Web.HttpModules.WwwSubDomainModule.cs fixes it?
May 12, 2013 at 8:54 PM
rtur wrote:
Have no way of verifying it, but possibly it is due to extension-less URLs. Can someone check if changing from:
if (context.Request.PhysicalPath.EndsWith(".aspx", StringComparison.OrdinalIgnoreCase))
to:
if (context.Request.PhysicalPath.EndsWith(".aspx", StringComparison.OrdinalIgnoreCase) ||
                context.Request.CurrentExecutionFilePathExtension.Trim().ToLower() == BlogConfig.FileExtension.Trim().ToLower())
in the BlogEngine.Core.Web.HttpModules.WwwSubDomainModule.cs fixes it?
Yes, I am using extension-less URLs. I would be pleased to test it but I don't have VS2010 to compile it :(
May 12, 2013 at 9:01 PM
kjenm wrote:
Yes, I am using extension-less URLs. I would be pleased to test it but I don't have VS2010 to compile it :(
You can down for free VS2012 :)

http://www.asp.net/downloads


It can compile it :)

Just download source.

Open it in VS2012

Right click on BlogEngine.core

Click on rebuild solution

When done press f5

and it should work !
May 12, 2013 at 11:27 PM
kbdavis07 wrote:
kjenm wrote:
Yes, I am using extension-less URLs. I would be pleased to test it but I don't have VS2010 to compile it :(
You can down for free VS2012 :)

http://www.asp.net/downloads


It can compile it :)

Just download source.

Open it in VS2012

Right click on BlogEngine.core

Click on rebuild solution

When done press f5

and it should work !
Thanks kbdavis07!! As soon I compile and test it, I would report if the fix works!
Coordinator
May 12, 2013 at 11:30 PM
No need to compile, download it from here, unzip and move files to corresponding locations.
May 12, 2013 at 11:48 PM
rtur wrote:
No need to compile, download it from here, unzip and move files to corresponding locations.
Thank you very much rtur!!! This release fixed various issues:
  • The redirect of extension-less URLs work as expected
  • The auto generated slug works with Windows Live Writer
  • The auto generated slug now is unique
Thank you very much!!!
Coordinator
May 13, 2013 at 12:43 AM
Great, I'll publish it as a patch later tonight.
May 19, 2013 at 4:36 AM
Hi, I detected another bug in BE 2.8 related to the crawling of the URLs. This issue maybe related to extension-less URLs. I wondered if someone else checked this issue in Google Webmaster tools in the crawl errors because BE 2.8 is throwing some ugly errors with server response code 500.

The details of this issue are detailed in this thread:
https://blogengine.codeplex.com/discussions/443995

This isuue is really serious, hope to find a fix for it because it is really afecting the SEO.