I am getting the exact same error.
Standard express installation first, installation successful, started getting the error after I clicked on the Community tab in edit mode. After that unable to access any of the site, receive this error every time. IIS resets don't help.
Uninstalled the site, then re-installed using the deployment manager. Same thing happened. Installation successful, site loads. Enter edit mode, click on the Community administration tab and receive the error. All site pages now fail to load.
Has anyone managed to resolve this issue? Are we missing something during installation?
All pre-reqs and install instructions double checked. Running in a VM with only 2 other R2 sites on the same version.
Hi,
Could you provide your values for the aggregationInterval from the newsfeed section in your web.config?
<newsfeed aggregationInterval="00:10:00" aggregationSpan="1.00:00:00" />
Also, putting this little snippet into an aspx file on the site where you installed Relate+, and going to that page should display the actual loaded value, could you also, if possible, provide this?
<%@ Page language="c#" AutoEventWireup="True" %>
<%= EPiServer.Community.NewsFeed.NewsFeedModule.Instance.AggregationInterval.TotalMilliseconds %>
/Håkan
web.config settings
<newsfeed aggregationInterval="00:10:00" aggregationSpan="1.00:00:00" />
value from .aspx page: 600000
However, my site appears to be working now...
Okay, those settings are, as one would suspect, set to their default values.
Do you know if anything has changed between when it didn't work and now?
The way we have been able to find to reproduce the problem is by setting the aggregationInterval to a very high value; more than 24.86 days (Int32.MaxValue ms), in which case this error occurs due to an integer overflow inside the System.Timers.Timer class.
Did we get a definitive answer on what was causing this? I'm getting the same error as above, I can't add the code snippit to a page as not a single page will load without the error message.
I've already re-installed the Relate+ and the error has happened again. The only thing I did previously that may have changed things was to create a new page type in VS2008, but i didn't even get to adding it properly as a page type within the CMS
For the purposes of troubleshooting, could you instead make the following change to global.asax:
<%@ Application Language="C#" Inherits="EPiServer.Global" %>
<script language="C#" runat="server">
void Application_BeginRequest(object source, EventArgs e) {
try
{
EPiServer.Common.Web.Global.OnBeginRequest();
} catch (Exception ex) {
throw new ApplicationException("Newsfeed aggregation interval: " + EPiServer.Community.NewsFeed.NewsFeedModule.Instance.AggregationInterval.TotalMilliseconds.ToString(), ex);
}
}
</script>
And comment out the EPiServer.Common.Web.HttpModule http module in web.config:
<!-- <add name="EPiServerCommon" type="EPiServer.Common.Web.HttpModule, EPiServer.Common.Web" preCondition="managedHandler" />-->
That should throw an exception with the interesting value in the message. (This change should not be made permanent, however.)
Description: An unhandled exception occurred during the execution of the current web request. Please review the stack trace for more information about the error and where it originated in the code.
Exception Details: System.NullReferenceException: Object reference not set to an instance of an object.
Source Error:
Line 57:
Line 58: // Get tags and data bind the tag control
Line 59: ucSiteTags.TagCloud = TagHandler.GetTagCloud(ucSiteTags.Limit);
Line 60: ucSiteTags.DataBind();
Line 61:
Source File: C:\EPiServer\Sites\RelateNPIA\Templates\RelatePlus\Pages\Start.aspx.cs Line: 59
Stack Trace:
[NullReferenceException: Object reference not set to an instance of an object.]
EPiServer.Common.Cache.CacheHandler.GetCachedObject(String keyPath) +33
EPiServer.Common.Cache.CacheHandler.GetCachedObjectImplementation(Delegate cacheObjectGetter, Object[] getterArgs, Nullable`1 cacheTimeSpan, NotFoundInCacheAnnouncer notFoundInCacheAnnouncer, String[] key) +127
EPiServer.Common.Cache.CacheHandler.GetCachedObject(Delegate cacheObjectGetter, Object[] getterArgs, TimeSpan cacheTimeSpan, String[] key) +102
EPiServer.Common.Tags.TagHandler.GetTagCloud(Int32 numItems) +336
EPiServer.Templates.RelatePlus.Pages.Start.OnLoad(EventArgs e) in C:\EPiServer\Sites\RelateNPIA\Templates\RelatePlus\Pages\Start.aspx.cs:59
System.Web.UI.Control.LoadRecursive() +50
System.Web.UI.Page.ProcessRequestMain(Boolean includeStagesBeforeAsyncPoint, Boolean includeStagesAfterAsyncPoint) +627
Simon, just to verify, are you getting this error (in the Event Log perhaps?):
System.ArgumentOutOfRangeException: Number must be either non-negative and less than or equal to Int32.MaxValue or -1.
Parameter name: dueTime
at System.Threading.Timer..ctor(TimerCallback callback, Object state, Int32 dueTime, Int32 period)
at System.Timers.Timer.set_Enabled(Boolean value)
at System.Timers.Timer.Start()
at EPiServer.Community.NewsFeed.NewsFeedAggregator.ResetTimer()
or only the sorting issue that seems to be a secondary problem?
(If the latter, what is the logged error?)
600000 is the expected value, and should work fine.
Yes, I looked at the logged results and I am getting the error with dueTime as you've mentioned above
2009-01-07 16:54:18,517 ERROR [1] EPiServer.Global.Global_Error - 1.2.5 Unhandled exception in ASP.NET
2009-01-07 16:56:55,924 ERROR [1] EPiServer.Global.Global_Error - 1.2.5 Unhandled exception in ASP.NET
System.InvalidOperationException: Failed to compare two elements in the array. ---> System.Reflection.TargetInvocationException: Exception has been thrown by the target of an invocation. ---> EPiServer.Common.Exceptions.EPiServerCommunityException: EPiServerCommunity failed to initialize. Correct the error and restart application. ---> System.ArgumentOutOfRangeException: Number must be either non-negative and less than or equal to Int32.MaxValue or -1.
Parameter name: dueTime
at System.Threading.Timer..ctor(TimerCallback callback, Object state, Int32 dueTime, Int32 period)
at System.Timers.Timer.set_Enabled(Boolean value)
at System.Timers.Timer.Start()
at EPiServer.Community.NewsFeed.NewsFeedAggregator.ResetTimer()
at EPiServer.Community.NewsFeed.NewsFeedAggregator.Initialize()
at EPiServer.Community.NewsFeed.NewsFeedAggregator..ctor()
at EPiServer.Community.NewsFeed.NewsFeedModule.OnApplicationStart(CommunityContext context)
at EPiServer.Community.CommunitySystem.LoadSettings()
at EPiServer.Community.CommunitySystem.OnApplicationStart(IModuleContext context)
at EPiServer.Common.Settings.LoadModules()
--- End of inner exception stack trace ---
at EPiServer.Community.CommunitySystem.get_CurrentContext()
at EPiServer.Community.CommunitySystem.get_AdministrationNode()
--- End of inner exception stack trace ---
at System.RuntimeMethodHandle._InvokeMethodFast(Object target, Object[] arguments, SignatureStruct& sig, MethodAttributes methodAttributes, RuntimeTypeHandle typeOwner)
at System.RuntimeMethodHandle.InvokeMethodFast(Object target, Object[] arguments, Signature sig, MethodAttributes methodAttributes, RuntimeTypeHandle typeOwner)
at System.Reflection.RuntimeMethodInfo.Invoke(Object obj, BindingFlags invokeAttr, Binder binder, Object[] parameters, CultureInfo culture, Boolean skipVisibilityChecks)
at System.Reflection.RuntimeMethodInfo.Invoke(Object obj, BindingFlags invokeAttr, Binder binder, Object[] parameters, CultureInfo culture)
at System.Reflection.RuntimePropertyInfo.GetValue(Object obj, BindingFlags invokeAttr, Binder binder, Object[] index, CultureInfo culture)
at System.Reflection.RuntimePropertyInfo.GetValue(Object obj, Object[] index)
at EPiServer.Common.ObjectComparer.GetPropertyValue(Object o, String propertyPath)
at EPiServer.Common.ObjectComparer.Compare(Object x, Object y)
at System.Array.SorterObjectArray.SwapIfGreaterWithItems(Int32 a, Int32 b)
--- End of inner exception stack trace ---
at System.Array.SorterObjectArray.SwapIfGreaterWithItems(Int32 a, Int32 b)
at System.Array.SorterObjectArray.QuickSort(Int32 left, Int32 right)
at System.Array.Sort(Array keys, Array items, Int32 index, Int32 length, IComparer comparer)
at System.Collections.ArrayList.IListWrapper.Sort(Int32 index, Int32 count, IComparer comparer)
at EPiServer.Common.Modules.ModuleCollection.Sort(IComparer comparer)
at EPiServer.Common.Settings.LoadModules()
at EPiServer.Common.Settings.LoadSettings()
at EPiServer.Common.Web.Global.OnBeginRequest()
at EPiServer.Common.Web.HttpModule.Context_BeginRequest(Object sender, EventArgs e)
at System.Web.HttpApplication.SyncEventExecutionStep.System.Web.HttpApplication.IExecutionStep.Execute()
at System.Web.HttpApplication.ExecuteStep(IExecutionStep step, Boolean& completedSynchronously)
2009-01-07 16:56:55,924 ERROR [1] EPiServer.Global.Global_Error - 1.2.5 Unhandled exception in ASP.NET
We have isolated the problem that you are experiencing and have a workaround available:
This happens due to a date that is stored in the current culture (this will be fixed in a future update).
Changing so that the culture of the ASPNET user and the globalization culture configured in web.config match will work around the problem.
In web.config, changing
<globalization culture="en-US" ... />
to
<globalization culture="en-GB" ... />
would avoid the problem during startup as well as changing the date format on the site to dd/mm/yyyy. If this not acceptable, changing the culture of the ASPNET user or running the web application as a new user with the desired culture would also be a possible solution.
The background of the problem is that if the user running the ASP.NET application has en-GB set in their regional settings in Windows (this would be the default if "English (UK)" was chosen during the Windows installation) while the ASP.NET globalization culture in web.config is set to "en-US" (as shipped) then the value is accessed using different cultures during application startup and later on from a non-httprequest thread. What makes this break specifically is how the "dd/mm/yyyy" (en-GB) and "mm/dd/yyyy" (en-US) formats can be confused.
At what time will the fixed templates be released?
I've tried the suggestions here, but my site is still not working. I managed to get a "default" site up and running one time, but the "unable to compare.." error returned very shortly.
Hi Marius,
This seems strange. I have some questions so that with can do a follow up:
1. What is the culture of your ASP.NET user? In the default case the ASP.NET user will have the culture which maps to the regional settings you chose when you installed Windows.
2. What culture are you using in the Web.config file?
//Tom
I tried setting the web.config culture to en-GB, and did the same to my windows installation and both IE and FF.
I got the quick install site to work once before the same crashes as mentioned by all posts in this thread occured again.
Hi again,
I don't think you are making the changes that I and Håkan described in the previous posts. The settings in IE and FF has nothing to do with this at all. When you say you "did the same to my Windows installation", I think you are changing the settings for your own user account and not for the ASP.NET user.
The regional settings for the ASP.NET user account is set during the installation of Windows. To change the settings you need to manipulate the registry. For more info see: http://social.msdn.microsoft.com/Forums/en-US/csharpgeneral/thread/354eff39-021a-418e-a2b7-72cb7434ca5c/
Since this is a bit tedious, I want to ask you what you want to achieve. If you have a computer installed with Norwegian regional settings and are developing a site with Norwegian as culture, it's easiest to change the settings in Web.config to "nn-NO".
If you on the other hand are using a computer installed with Norwegian regional settings, and developing a English site, you need to change the settings for the ASP.NET user to "en-US"and have the "en-US" in the Web.config file.
//Tom
Hi,
I'm receiving the same error, My installation worked fine for the first couple of days, but now I cannot get any page to work (neither edit nor admin are working). All I've done is adding an attribute on the one of the classes. I haven't installed a license on neither CMS nor Ralate+.
I've seen this problem earlier, then it was enough with a iisreset,
I attempted to start the project through the Visual Studio debugger. I allowed VS to change the settings of web.config to allow debugging. After that I haven't gotten the site back up.
What is the reference about Enterprise Library in the error message? Is it a required component?
Changing the culture in web.config did not have any affect. I don't care about regional settings at this point, I just want a working platform again =)
Regards,
Peter
-------
Here's the error reported (from the startpage):
2009-02-05 15:42:52,453 ERROR [8] EPiServer.Global.Global_Error - 1.2.5 Unhandled exception in ASP.NET
System.InvalidOperationException: Failed to compare two elements in the array. ---> System.Reflection.TargetInvocationException: Exception has been thrown by the target of an invocation. ---> EPiServer.Common.Exceptions.FrameworkException: EPiServer Community failed to initialize. Correct the error and restart application. ---> System.IO.FileNotFoundException: Could not load file or assembly 'Microsoft.Practices.EnterpriseLibrary.Data, Version=2.0.0.0, Culture=neutral, PublicKeyToken=0bd7a6276e8c109e' or one of its dependencies. Det går inte att hitta filen.
File name: 'Microsoft.Practices.EnterpriseLibrary.Data, Version=2.0.0.0, Culture=neutral, PublicKeyToken=0bd7a6276e8c109e'
at EPiServer.Common.Settings.GetSetting(String key)
at EPiServer.Community.DocumentArchive.DocumentArchiveModule.CreateRequiredModuleEntries()
at EPiServer.Community.DocumentArchive.DocumentArchiveModule.LoadSettings()
at EPiServer.Community.DocumentArchive.DocumentArchiveModule.OnApplicationStart(CommunityContext context)
at EPiServer.Community.CommunitySystem.LoadSettings()
at EPiServer.Community.CommunitySystem.OnApplicationStart(IModuleContext context)
at EPiServer.Common.Settings.LoadModules()
VARN: Loggningen av sammansättningsbindningen är inaktiverad.
Du kan aktivera felloggning för sammansättningsbindningar genom att ange registervärdet [HKLM\Software\Microsoft\Fusion!EnableLog] (DWORD) till 1.
Obs! Prestanda kan försämras något med felloggning för sammansättningsbindningar.
Du kan inaktivera funktionen genom att ta bort registervärdet [HKLM\Software\Microsoft\Fusion!EnableLog].
--- End of inner exception stack trace ---
at EPiServer.Community.CommunitySystem.get_CurrentContext()
at EPiServer.Community.CommunitySystem.get_AdministrationNode()
--- End of inner exception stack trace ---
at System.RuntimeMethodHandle._InvokeMethodFast(Object target, Object[] arguments, SignatureStruct& sig, MethodAttributes methodAttributes, RuntimeTypeHandle typeOwner)
at System.RuntimeMethodHandle.InvokeMethodFast(Object target, Object[] arguments, Signature sig, MethodAttributes methodAttributes, RuntimeTypeHandle typeOwner)
at System.Reflection.RuntimeMethodInfo.Invoke(Object obj, BindingFlags invokeAttr, Binder binder, Object[] parameters, CultureInfo culture, Boolean skipVisibilityChecks)
at System.Reflection.RuntimeMethodInfo.Invoke(Object obj, BindingFlags invokeAttr, Binder binder, Object[] parameters, CultureInfo culture)
at System.Reflection.RuntimePropertyInfo.GetValue(Object obj, BindingFlags invokeAttr, Binder binder, Object[] index, CultureInfo culture)
at System.Reflection.RuntimePropertyInfo.GetValue(Object obj, Object[] index)
at EPiServer.Common.ObjectComparer.GetPropertyValue(Object o, String propertyPath)
at EPiServer.Common.ObjectComparer.Compare(Object x, Object y)
at System.Array.SorterObjectArray.SwapIfGreaterWithItems(Int32 a, Int32 b)
--- End of inner exception stack trace ---
at System.Array.SorterObjectArray.SwapIfGreaterWithItems(Int32 a, Int32 b)
at System.Array.SorterObjectArray.QuickSort(Int32 left, Int32 right)
at System.Array.Sort(Array keys, Array items, Int32 index, Int32 length, IComparer comparer)
at System.Collections.ArrayList.IListWrapper.Sort(Int32 index, Int32 count, IComparer comparer)
at EPiServer.Common.Modules.ModuleCollection.Sort(IComparer comparer)
at EPiServer.Common.Settings.LoadModules()
at EPiServer.Common.Settings.LoadSettings()
at EPiServer.Common.Web.Global.OnBeginRequest()
at EPiServer.Common.Web.HttpModule.Context_BeginRequest(Object sender, EventArgs e)
at System.Web.HttpApplication.SyncEventExecutionStep.System.Web.HttpApplication.IExecutionStep.Execute()
at System.Web.HttpApplication.ExecuteStep(IExecutionStep step, Boolean& completedSynchronously)
Hi Peter,
This seems to be a different error. My guess is that you have done "Clean Solution" in Visual Studio or something similar that cleans the bin directory.
As you can see in the stacktrace the Microsoft.Practices.EnterpriseLibrary.Data dll is missing. This file must be in the din directory. All the files needed for a Relate+ site is put in the bin directory during install, but all of them are not referenced directly by the solution file. This means that if you empty the bin folder you will loose some needed dll:s, that will not be placed there again if you do a Build.
The solution is to take all the files from a working Relate+ site and copy them to your bin directory.
Hope this helps!
Best regards,
Tom Stenius
Hi Tom,
That was nicely guessed, spot on! Site back up again, thanks!
(I copied all files from c:\[..]\EPiServer\CommonFramework\[nnn]\bin. )
I wasn't able to start debugging on the site (got an error message "Unable to start debugging on the web server. An authentication error occurred while communicating with the web server.") so I tried the Clean-up tool. Guess I shouldn't have =)
Regards.
Peter
I've just had the same error.
It occurred when I made a change to the demo project (adding a new aspx page, or editing a provided one) and rebuilt the project.
Would it not be a better idea to have all the required dlls referenced in the sample project from the start?
Hi Adam,
The trick is to place the DLL:s in another directory, for instance "Dependencies" and reference the DLL:s there. Then add a post build action that copies the DLL:s that are not referenced to the bin directory. This is something we will change in the future.
Best regards,
Tom
Hi all,
Since I still hear from people who have the culture issue on their sites and don't know what to do, I want to point out that this issue is addressed in Hotfix 1 for EPiServer Communty 3.2. It can be found here: http://world.episerver.com/en/Download/Items/Hotfixes/EPiServer-Community/Hotfix-1-EPiServer-Community-32.
Best regards,
Tom
You could please check the value of newsfeed_last_aggregation field in tblEPiServerCommonSetting table . it maybe by somehow that this field was set to wrong value which is higher than current date time. If so, change this value to recent datetime (less than now) may resolve the problem. I have experienced this issue before and doing this helped.
Hi Guys,
I am facing issues in CMS 7 version of calendar control (EPiServer.Web.WebControls.Calendar) which i have migrated from CMS 6 R2 to CMS 7.
"Failed to compare two elements in the array".
I am getting this error in Calendar control databind method.
Code Snippet:
epiStartCalendar.BeginDate = GetStartDate();
epiStartCalendar.PageLinkProperty = CalendarListingRoot;
epiStartCalendar.DataBind();
Please help me if you guys have any input.
Hi, I installed Relate+ on a sample site and it all worked fine.
Subsequent access to the site is giving me a 'page could not be loaded' error: details are as follows :-
Stack trace: