Sorry for the confusion, EPiServer Mail requires an EPiServer CMS site to install and as there is no upgrade between 4.3 and 4.4 (migration required) sites with 4.3 are also disqualified during installation.
See http://world.episerver.com/en/Download/Categories/Version-Relations/EPiServer-CMS-5-Relations/ for details on the compatible CMS versions and http://world.episerver.com/en/Articles/Items/Migrating-StarCommunity-31-to-EPiServer-Community-32/ for how to migrate.
If I understand this correctly... I have to install a new site on our server and on this install EPiServer Mail 4.4 and then move our live site consisting of thousands of pages and all the VPP files to the new site to be able to get EPiServer Mail to work?
If that is the case, how do I perform this the easiest way? What about licensing violation during twosite installation?
Well, you don't necessarily need to move all your content to a new site.
What you absolutely do need during the migration is to have two separate databases, one with the 4.3 structure and one with the 4.4 structure.
Is EPiServer Mail 4.3 in a separate database from CMS?
If that is the case you may just want to temporarily remove the <EPiUI>/Mail, bin/EPiServer.Mail.*, bin/StarSuite.* files, install 4.4 onto the site, using a new DB, and then run the migration script from the 4.3 to the 4.4 database to get your Mail content into the 4.4 installation.
If Mail and CMS are sharing DB, you would probably want to also restore a backup of this database, remove the StarSuite and Mail related tables and stored procedures before installing 4.4, that way you can install 4.4 into this shared database (and then migrate the 4.3 data as mentioned above).
I hope this explanation made sense.
Regarding the StarSuite error messages, I can't really tell what is wrong without knowing the actual message, but there's a significant chance that these messages will go away after migrating to the new version anyway, so it may not be worth it putting too much energy into that issue before seeing if that is the case.
There is also a EPiServer Mail 4.3 - 4.4 upgrade instruction in the Create+ upgrade instructions - look under the documention section for the document.
Darn, called 'hej' too soon. After installing EPiServer Mail there were added two membership providers in web.config:
EPiServerCommonMembershipProvider & EPiServerCommonIntegrationMembershipProvider
However since we use a custom membership provider for some of our users we use the multiplexing provider. And here it gets weird:
Case 1: Using the EPiServerCommonIntegrationMembershipProvider
This has a provider property that points towards MultiplexingMembershipProvider which is the new one as stated in the Hot Fix 1 - EPiServer Common. This multiplexing provider has two providers: SqlServerMembershipProvider and our own custom membership provider.
Result: Our custom membership provider works but if I as admin or anyone else that is set up in the SqlServerMemebrshipProvider recieve an error message:
Invalid use of read only object - Clone() it before making modifications.
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: EPiServer.Common.Exceptions.FrameworkException: Invalid use of read only object - Clone() it before making modifications.
Source Error:
An unhandled exception was generated during the execution of the current web request. Information regarding the origin and location of the exception can be identified using the exception stack trace below. |
|
Case 2: Using the 'new' MultiplexingMembershipProvider
Result: Site does not load: shows this:
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: EPiServer.BaseLibrary.ClassFactoryException: ClassFactory not initialized
Source Error:
An unhandled exception was generated during the execution of the current web request. Information regarding the origin and location of the exception can be identified using the exception stack trace below. |
|
Overall the site is extremely instabil all the time and changing one little thing can make the whole site to stop working. Does these error messages say anything on what the problem might be? One thing i noted was that during trying around different settings I got one message stating that it needed assembly from EPiServer R1 and checking my web.config there are alot of add assembly that refers to Version 5.1.422.4. Could this be something? Can I delete those or change version to 5.2.375.133?
Okay, can you just confirm that Common 2.3 Hotfix 1 is fully installed? (That is, at least the fixed EPiServer.Common.Web.Authorization.dll was installed, and optionally EPiServer.Common.Web.Authorization.Multiplexing.dll too?)
And what does the membership provider / role provider sections look like?
Copied both the dll:s to the bin folder and changed the MultiplexingMembershipProvider to this
<add name="MultiplexingMembershipProvider" type="EPiServer.Common.Web.Authorization.Multiplexing.IntegrationMultiplexingMembershipProvider, EPiServer.Common.Web.Authorization.Multiplexing" provider1="SqlServerMembershipProvider" provider2="ECIDMembershipProvider" roleToSynchronize1="*" />
Using the following settings I got the site to run and our customers could log in using the ECIDMembershipProvider but we as editors or admin could not log in:
<add name="MultiplexingMembershipProvider" type="EPiServer.Common.Web.Authorization.Multiplexing.IntegrationMultiplexingMembershipProvider, EPiServer.Common.Web.Authorization.Multiplexing" provider1="SqlServerMembershipProvider" provider2="ECIDMembershipProvider" roleToSynchronize1="WebAdmins" roleToSynchronize2="WebEditors" />
We recieve this errormessage:
Invalid use of read only object - Clone() it before making modifications. 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: EPiServer.Common.Exceptions.FrameworkException: Invalid use of read only object - Clone() it before making modifications. Source Error: An unhandled exception was generated during the execution of the current web request. Information regarding the origin and location of the exception can be identified using the exception stack trace below. Stack Trace: [FrameworkException: Invalid use of read only object - Clone() it before making modifications.] EPiServer.Common.EntityValidator.ValidateIsNotReadOnly(ICloneable cloneable) +66 EPiServer.Common.Data.FrameworkFactoryBase.UpdateEntity(IFrameworkEntity entity, Int32 id, Boolean add) +78 EPiServer.Common.Data.FrameworkFactoryBase.UpdateEntity(IFrameworkEntity entity) +39 EPiServer.Common.Security.Internal.SecurityHandler.SecurityHandler_UpdatedUser(ISecurityHandler sender, IUpdateUserEventArgs args) +77 EPiServer.Common.Security.SecurityHandler.OnUpdateUser(IUpdateUserEventArgs args) +22 EPiServer.Common.Security.Internal.Data.SecurityFactory.UpdateUser(User user, SecurityHandler securityHandler) +1014 EPiServer.Common.Security.Internal.SecurityHandler.UpdateUser(IUser user) +353 EPiServer.Common.Web.Authorization.Integrator.SynchronizeUser(MembershipUser membershipUser, String password, Boolean enableCreateNew) +1058 EPiServer.Common.Web.Authorization.Multiplexing.IntegrationMultiplexingMembershipProvider.ValidateUser(String username, String password) +79 System.Web.UI.WebControls.Login.AuthenticateUsingMembershipProvider(AuthenticateEventArgs e) +60 System.Web.UI.WebControls.Login.OnAuthenticate(AuthenticateEventArgs e) +119 System.Web.UI.WebControls.Login.AttemptLogin() +115 System.Web.UI.WebControls.Login.OnBubbleEvent(Object source, EventArgs e) +101 System.Web.UI.Control.RaiseBubbleEvent(Object source, EventArgs args) +37 System.Web.UI.WebControls.Button.OnCommand(CommandEventArgs e) +118 System.Web.UI.WebControls.Button.RaisePostBackEvent(String eventArgument) +166 System.Web.UI.WebControls.Button.System.Web.UI.IPostBackEventHandler.RaisePostBackEvent(String eventArgument) +10 System.Web.UI.Page.RaisePostBackEvent(IPostBackEventHandler sourceControl, String eventArgument) +13 System.Web.UI.Page.RaisePostBackEvent(NameValueCollection postData) +36 System.Web.UI.Page.ProcessRequestMain(Boolean includeStagesBeforeAsyncPoint, Boolean includeStagesAfterAsyncPoint) +1565
Trying to change the settings to this:
<add name="MultiplexingMembershipProvider" type="EPiServer.Common.Web.Authorization.Multiplexing.IntegrationMultiplexingMembershipProvider, EPiServer.Common.Web.Authorization.Multiplexing" provider1="SqlServerMembershipProvider" provider2="ECIDMembershipProvider" roleToSynchronize1="Everyone" />
Gives me this errormessage:
Server Error in '/' Application. -------------------------------------------------------------------------------- ClassFactory not initialized 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: EPiServer.BaseLibrary.ClassFactoryException: ClassFactory not initialized Source Error: An unhandled exception was generated during the execution of the current web request. Information regarding the origin and location of the exception can be identified using the exception stack trace below. Stack Trace: [ClassFactoryException: ClassFactory not initialized] EPiServer.BaseLibrary.ClassFactory.get_Instance() +75 EPiServer.BaseLibrary.ClassFactory.IsRegistered(Type baseType) +11 EPiServer.CacheManager..cctor() +189 [TypeInitializationException: The type initializer for 'EPiServer.CacheManager' threw an exception.] EPiServer.Web.FriendlyUrlRewriteProvider.ConvertToInternal(UrlBuilder url, Object& internalObject) +357 EPiServer.Web.UrlRewriteModule.HttpUrlRewriteToInternal(UrlBuilder url) +313 EPiServer.Web.UrlRewriteModuleBase.BeginRequestEventHandler(Object sender, EventArgs e) +158 System.Web.SyncEventExecutionStep.System.Web.HttpApplication.IExecutionStep.Execute() +68 System.Web.HttpApplication.ExecuteStep(IExecutionStep step, Boolean& completedSynchronously) +75 [TypeInitializationException: The type initializer for 'EPiServer.DataAbstraction.UnifiedPathInfo' threw an exception.] EPiServer.DataAbstraction.UnifiedPathInfo.Load(String path) +338 EPiServer.FileSystem.DefaultAccessControlList..ctor(String path) +65 EPiServer.Web.Hosting.DirectoryAccessControl..ctor(String virtualPath) +28 EPiServer.Web.Hosting.UnifiedDirectory.get_DirectoryAC() +176 EPiServer.Web.Hosting.UnifiedDirectory.QueryAccess() +79 EPiServer.Web.Hosting.UnifiedDirectory.QueryDistinctAccess(AccessLevel access) +17 EPiServer.Web.Hosting.VirtualPathVersioningProvider.GetDirectory(String virtualPath) +177 EPiServer.Web.Hosting.VirtualPathHandler.InitializeProviders(ProviderSettingsCollection providers) +399 EPiServer.Web.InitializationModule.InitializeVirtualPathProviders(VirtualPathElement vpElement) +72 EPiServer.Web.<>c__DisplayClass32.b__18() +22 EPiServer.Web.InitializeEngine.Initialize() +184 EPiServer.Web.InitializationModule.Initialize(EPiServerSection config, Settings settings, ConnectionStringSettingsCollection connectionStringSettings) +1267 EPiServer.Web.InitializationModule.b__2() +34 EPiServer.Web.InitializeEngine.Initialize() +184 EPiServer.Web.InitializationModule.StaticInitialization() +737 EPiServer.Web.InitializationModule.Application_BeginRequest(Object sender, EventArgs e) +310 System.Web.SyncEventExecutionStep.System.Web.HttpApplication.IExecutionStep.Execute() +68 System.Web.HttpApplication.ExecuteStep(IExecutionStep step, Boolean& completedSynchronously) +75 -------------------------------------------------------------------------------- Version Information: Microsoft .NET Framework Version:2.0.50727.3053; ASP.NET Version:2.0.50727.3053
Trying to change back to the settings that worked initally doesn't work, only give me the second message all over. Occasionally this error message also occurs:
Server Error in '/' Application. -------------------------------------------------------------------------------- Object reference not set to an instance of an object. 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: An unhandled exception was generated during the execution of the current web request. Information regarding the origin and location of the exception can be identified using the exception stack trace below. Stack Trace: [NullReferenceException: Object reference not set to an instance of an object.] EPiServer.Common.Web.HttpModule.Context_EndRequest(Object sender, EventArgs e) +6 System.Web.SyncEventExecutionStep.System.Web.HttpApplication.IExecutionStep.Execute() +68 System.Web.HttpApplication.ExecuteStep(IExecutionStep step, Boolean& completedSynchronously) +75 -------------------------------------------------------------------------------- Version Information: Microsoft .NET Framework Version:2.0.50727.3053; ASP.NET Version:2.0.50727.3053
I feel that I can get the site to run initially sometimes but if I do any change in either web.config or updating our site dll makes the whole site stop and I am left with nothing else to do then to restore the code as it were before updating EPiServerMail. The employees is really breathing down my neck and wants to send out newsletters.
To me it seems as if the hotfixed EPiServer.Common.Web.Authorization.dll (file version 2.3.350.21) is not what is used in the environment where this is happening.
Do you have EPiServer.Common.Web.Authorization in the GAC too, not only in the bin folder of the web site?
If none of this is the case, I think you may need to open a case with Support:
http://world.episerver.com/en/Support/Register-Support-Incident/During the lunch I tried to use the web.config file from the site that I created to be able to migrate EPiServerMail and only applied our specific settings. The things I changed was:
1 Copy the sitesettingsnode from the current site.
2. Added <section name="episerver.Blog" type="EPiServer.Blog.ConfigurationHandler, EPiServer.Blog" />
3. Added the Virtual Role Exhibitor
4. Added the ECIDMembershipProvider but did not reference it in any other MembershipProvider
5. Added custom Profile properties used by our Virtual Role
6. Added our UserControls own
Ran the site and got the ClassFactory errormessage. Feels like something else is causing the problems perhaps, so I checked the bin-folder to see what lies in there. Here is a list of "suspicious"/pluginsrelated entries:
EPiGoogleSitemaps.dll 1.0.0.3
EPiServer.Demo.Filemanager.dll 1.1.0.17
EPiTrace.dll 1.21.0.0 (hasn't updated this yet since mail was 1st prio)
FCKEditAdapter.dll 1.1.1.2
itextsharp.dll 4.1.2.0 (used for httpmodule to output pages as pdf)
QBrick.dll 5.0.0.12 (not used anymore so this I can take away, not tried it though)
Other than this there are a few dlls for DropIt X3, and ImageVault oldversions since as I said EPiServerMail was the 1st prio, but perhaps these affect something.
Is there some of these that could affect the running of the site?
I managed to solve the problem so that the site runs but there has to be something left from the R1 SP3 since the solution was for this but also worked for us. The solution was this:
http://www.kulov.net/blogs/martin/2009/01/typeinitializationexception-in.html
Since we moved the site to Windows server 2008 the above mentioned fix for our ClassFactory problem can not be used without getting a "Request is not available in this context"-error message. So this means that our problem is back. However just occasionally. The site can run for days sometimes but then something happens that causes the site to restart and then it get into a deadlock with this error message
2009-09-22 13:17:40,446 [9] EPiServer.Web.InitializeEngine.Initialize(:0) - UnInitializeAction on the method b__18 System.TypeInitializationException: The type initializer for 'EPiServer.DataAbstraction.UnifiedPathInfo' threw an exception. ---> System.TypeInitializationException: The type initializer for 'EPiServer.CacheManager' threw an exception. ---> EPiServer.BaseLibrary.ClassFactoryException: ClassFactory not initialized
All I can do at this moment is to iisreset and after a few tries the site comes up again.
This error started to occur after upgrade from EPiServer R1 SP3 to CMS R2 SP1. Read all forumposts on this issue but can't really apply none of the solutions. Our own code for the website does not hook into Global functions as one solutions points at and the site is upgraded successfully.
Our site/system is configured like this:
Windows server 2008 x64
EPiServer CMS 5.2.375.133
EPiServerMail 4.4.0.141 and EPiServerCommon hotfix applied
EPiServer Composer 3.2.5.115
Interactive Scene (Obg.CMS5 1.0.1.1, Obg.InteractiveScene.CMS5 1.3.100.23456)EPiServer Blog 5.2.375.133 with Demo templates functionality
SearchEngineSitemaps
The development environment is runned on Vista in Visual Studio 2008 and is debugged in VS Development Server. This environment does not have EPiServerMail, Composer, Interactive Scene or SearchEngineSitemaps installed.
Is there something with our code/configuration that can cause this type of error?
It seems weird that the site can run and be updated most of the times but then sometimes get in a deadlock state.
I am in desperate need of any advice on how to start debugging this problem so if anyone has anything to recommend please do.
Upgraded our R1 SP3 site using EPiServer Mail 4.3 to R2 and are now trying to install EPiServer Mail 4.4 without any luck. When I get to the first step to choose a site there are no sites to select from. The text is a little confusing as it states to select an EpiServer Mail application.
According to the installation instruction there doesn't seem to be any prerequisits to be performed to be able to install it on the site. What seems to be the problem?