Problem while deploying on Server

 

Dear all,

On my developpment machine everything works fine but as soon as I deploy it on the server I get the error displayed below.

Any idea what it could be?

Best regards,

Daniel

-----

Server Error in '/Main' Application.


StructureMap Exception Code:  202
No Default Instance defined for PluginFamily EPiServer.Core.Transfer.IContentCopyHandler, EPiServer, Version=7.0.586.1, Culture=neutral, PublicKeyToken=8fe83dea738b45b7

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: StructureMap.StructureMapException: StructureMap Exception Code:  202
No Default Instance defined for PluginFamily EPiServer.Core.Transfer.IContentCopyHandler, EPiServer, Version=7.0.586.1, Culture=neutral, PublicKeyToken=8fe83dea738b45b7

Source Error: 

 

[No relevant source lines]


Source File: c:\Windows\Microsoft.NET\Framework64\v4.0.30319\Temporary ASP.NET Files\main\6d2c61ab\d6e63713\App_global.asax.0.cs    Line: 

Stack Trace: 

 

[StructureMapException: StructureMap Exception Code:  202

No Default Instance defined for PluginFamily EPiServer.Core.Transfer.IContentCopyHandler, EPiServer, Version=7.0.586.1, Culture=neutral, PublicKeyToken=8fe83dea738b45b7]

   StructureMap.BuildSession.<.ctor>b__0(Type t) +217

   StructureMap.Util.Cache`2.get_Item(KEY key) +199

   StructureMap.BuildSession.CreateInstance(Type pluginType) +16

   StructureMap.Pipeline.Instance.createRawObject(Type pluginType, BuildSession session) +87

   StructureMap.Pipeline.Instance.Build(Type pluginType, BuildSession session) +50

   StructureMap.Pipeline.ConstructorInstance.Get(String propertyName, BuildSession session) +93

   lambda_method(Closure , IArguments ) +549

   StructureMap.Construction.<>c__DisplayClass2.<CreateBuilder>b__0(IArguments args) +27

   StructureMap.Construction.InstanceBuilder.BuildInstance(IArguments args) +15

   StructureMap.Pipeline.ConstructorInstance.Build(Type pluginType, BuildSession session, IInstanceBuilder builder) +303

   StructureMap.Pipeline.Instance.createRawObject(Type pluginType, BuildSession session) +87

   StructureMap.Pipeline.Instance.Build(Type pluginType, BuildSession session) +50

   StructureMap.Pipeline.ObjectBuilder.Resolve(Type pluginType, Instance instance, BuildSession session) +147

   StructureMap.BuildSession.CreateInstance(Type pluginType, Instance instance) +72

   StructureMap.BuildSession.CreateInstance(Type pluginType) +23

   EPiServer.ServiceLocation.ServiceLocatorImplBase.GetInstance(Type serviceType, String key) +70

 

[ActivationException: Activation error occurred while trying to get instance of type DefaultContentProvider, key ""]

   EPiServer.ServiceLocation.ServiceLocatorImplBase.GetInstance(Type serviceType, String key) +181

   EPiServer.ServiceLocation.ServiceLocatorImplBase.GetInstance() +59

   EPiServer.Core.ContentProviderMap.LoadProviders(ProviderSettingsCollection pageProvidersCollection) +355

   EPiServer.Initialization.<>c__DisplayClass5.<Initialize>b__0() +108

   System.Threading.Tasks.Task.Execute() +130

 

[AggregateException: One or more errors occurred.]

   System.Threading.Tasks.Task.WaitAll(Task[] tasks, Int32 millisecondsTimeout, CancellationToken cancellationToken) +1738

   System.Threading.Tasks.Task.WaitAll(Task[] tasks, Int32 millisecondsTimeout) +84

   System.Threading.Tasks.Task.WaitAll(Task[] tasks) +39

   EPiServer.Initialization.CmsCoreInitialization.Initialize(InitializationEngine context) +1065

   EPiServer.Framework.Initialization.ModuleNode.Execute(Action a, String key) +64

   EPiServer.Framework.Initialization.InitializationEngine.InitializeModules() +751

   EPiServer.Framework.Initialization.InitializationEngine.Initialize(HostType hostType) +168

   EPiServer.Framework.Initialization.InitializationModule.Initialize(HostType hostType) +308

   EPiServer.Framework.Initialization.InitializationModule.FrameworkInitialization(HostType hostType) +75

   EPiServer.Global..ctor() +103

   Namespace.EpiServerTms.Global..ctor() +40

   ASP.global_asax..ctor() in c:\Windows\Microsoft.NET\Framework64\v4.0.30319\Temporary ASP.NET Files\main\6d2c61ab\d6e63713\App_global.asax.0.cs:0

 

[TargetInvocationException: Exception has been thrown by the target of an invocation.]

   System.RuntimeTypeHandle.CreateInstance(RuntimeType type, Boolean publicOnly, Boolean noCheck, Boolean& canBeCached, RuntimeMethodHandleInternal& ctor, Boolean& bNeedSecurityCheck) +0

   System.RuntimeType.CreateInstanceSlow(Boolean publicOnly, Boolean skipCheckThis, Boolean fillCache) +117

   System.RuntimeType.CreateInstanceDefaultCtor(Boolean publicOnly, Boolean skipVisibilityChecks, Boolean skipCheckThis, Boolean fillCache) +247

   System.Activator.CreateInstance(Type type, Boolean nonPublic) +106

   System.RuntimeType.CreateInstanceImpl(BindingFlags bindingAttr, Binder binder, Object[] args, CultureInfo culture, Object[] activationAttributes) +12733325

   System.Activator.CreateInstance(Type type, BindingFlags bindingAttr, Binder binder, Object[] args, CultureInfo culture) +28

   System.Web.HttpRuntime.CreateNonPublicInstance(Type type, Object[] args) +83

   System.Web.HttpApplicationFactory.GetSpecialApplicationInstance(IntPtr appContext, HttpContext context) +315

   System.Web.Hosting.PipelineRuntime.InitializeApplication(IntPtr appContext) +375

 

[HttpException (0x80004005): Exception has been thrown by the target of an invocation.]

   System.Web.HttpRuntime.FirstRequestInit(HttpContext context) +11686928

   System.Web.HttpRuntime.EnsureFirstRequestInit(HttpContext context) +141

   System.Web.HttpRuntime.ProcessRequestNotificationPrivate(IIS7WorkerRequest wr, HttpContext context) +4863749

 

#66229 Feb 25, 2013 12:24
  • Marija Jemuovic
    Member since: 2010
     

    Try deleting the temporary asp.net files and/or IIS reset and if that doesn't help, see the differences in web.config file for localhost and test server. Check if you have StructureMap in runtime/assemblyBinding/dependentAssembly. If so, delete it. Hope it helps.

     

    #66232 Feb 25, 2013 13:10
  •  

    Hi Marija!

    Thank you for your answer!
    I have done what you suggested but I have still the same error.

    Any other idea what it could be?

    Best regards,

    Daniel

    ---- log4net output ----

    ---> (Inner Exception #0) EPiServer.ServiceLocation.ActivationException: Activation error occurred while trying to get instance of type DefaultContentProvider, key "" ---> StructureMap.StructureMapException: StructureMap Exception Code: 202
    No Default Instance defined for PluginFamily EPiServer.Core.Transfer.IContentCopyHandler, EPiServer, Version=7.0.586.1, Culture=neutral, PublicKeyToken=8fe83dea738b45b7
    at StructureMap.BuildSession.<.ctor>b__0(Type t)
    at StructureMap.Util.Cache`2.get_Item(KEY key)
    at StructureMap.BuildSession.CreateInstance(Type pluginType)
    at StructureMap.Pipeline.Instance.createRawObject(Type pluginType, BuildSession session)
    at StructureMap.Pipeline.Instance.Build(Type pluginType, BuildSession session)
    at StructureMap.Pipeline.ConstructorInstance.Get[T](String propertyName, BuildSession session)
    at lambda_method(Closure , IArguments )
    at StructureMap.Construction.BuilderCompiler.FuncCompiler`1.<>c__DisplayClass2.<CreateBuilder>b__0(IArguments args)
    at StructureMap.Construction.InstanceBuilder.BuildInstance(IArguments args)
    at StructureMap.Pipeline.ConstructorInstance.Build(Type pluginType, BuildSession session, IInstanceBuilder builder)
    at StructureMap.Pipeline.Instance.createRawObject(Type pluginType, BuildSession session)
    at StructureMap.Pipeline.Instance.Build(Type pluginType, BuildSession session)
    at StructureMap.Pipeline.ObjectBuilder.Resolve(Type pluginType, Instance instance, BuildSession session)
    at StructureMap.BuildSession.CreateInstance(Type pluginType, Instance instance)
    at StructureMap.BuildSession.CreateInstance(Type pluginType)
    at EPiServer.ServiceLocation.ServiceLocatorImplBase.GetInstance(Type serviceType, String key)
    --- End of inner exception stack trace ---
    at EPiServer.ServiceLocation.ServiceLocatorImplBase.GetInstance(Type serviceType, String key)
    at EPiServer.ServiceLocation.ServiceLocatorImplBase.GetInstance[TService]()
    at EPiServer.Core.ContentProviderMap.LoadProviders(ProviderSettingsCollection pageProvidersCollection)
    at EPiServer.Initialization.CmsCoreInitialization.<>c__DisplayClass5.<Initialize>b__0()
    at System.Threading.Tasks.Task.Execute()<---

    #66244 Edited, Feb 25, 2013 16:15
  • Marija Jemuovic
    Member since: 2010
     

    I am having this problem sometimes while rebuilding the application often.


    Things that cross my mind are:

    - Do you have a valid license?

    - Can you reinstall EPiServer?

    Maybe this is a bit heavy, but I don't have a smarter answer.

    #66247 Feb 25, 2013 16:48
  •  

    Make sure you're registering your StructureMap DependencyResolver in an IInitializableModule so it starts up at the right time (and not just in Global.asax or similar).

    Hope this helps.

    Frederik

    #66263 Feb 26, 2013 8:03
  • Marija Jemuovic
    Member since: 2010
     

    Hi, Daniel & Frederik,

    Can you please post the IInitializableModule that has solved this issue? I have the same problem on the production server now, but it seems that I am doing something wrong.

    Thank you in advance!

    Marija

     

    #68305 Edited, Mar 19, 2013 16:31
  •  

    Just move the code from Global.asax to an IInitializableModule:

    [ModuleDependency(typeof(ServiceContainerInitialization))]
        [InitializableModule]
        public class DependencyResolverInitialization : IConfigurableModule
        {
            public void ConfigureContainer(ServiceConfigurationContext context)
            {
                context.Container.Configure(ConfigureContainer);

                // This will setup the DependencyResolver with the EPiServer StructureMap Container
                DependencyResolver.SetResolver(new StructureMapDependencyResolver(context.Container));
            }

            private static void ConfigureContainer(ConfigurationExpression container)
            {
                container.AddRegistry<StructureMapRegistry>();
            }

            public void Initialize(InitializationEngine context)
            {
            }

            public void Uninitialize(InitializationEngine context)
            {
            }

            public void Preload(string[] parameters)
            {
            }
        }

    Frederik

    #68306 Mar 19, 2013 16:33
  • Marija Jemuovic
    Member since: 2010
     

    This fixed our problem, thx, Frederik, for the quick and accurate answer! :)

    #68366 Mar 20, 2013 17:51
  • Tim Brown
    Member since: 2013
     

    I've got the same problem at the moment. It works on some developer machines and not others.

    I have tried everything on this thread but it is still coming out with this error. The code and config are the same so it must be something environmental on these machines. The versions of EPiServer are the same as well.

    I am at a complete loss. This is a nasty issue. Has anyone else got any other ideas.

    Thanks

     

    #79821 Jan 08, 2014 10:58
  • Marija Jemuovic
    Member since: 2010
     

    Hi, Tim,

    Where and when do you configure your IoC container? Can you post some code? It should be (if it's the same error as explained above) that you are calling some code prior to initialization of structuremap.

    For me, this post was of great help http://www.epinova.no/blog/tarjei-olsen/dates/2013/1/injecting-stuff-in-your-view-controller/. I have rewritten my initialization as explained there. Then, you would use ServiceLocator.Current.GetInstance<IProvideAwesomeness> everywhere in the code (instead of using StructureMap classes directly).

    It should be that if you clear temporary files and kill IISExpress, you will be able to reproduce the bug on your machine as well.

    #79822 Jan 08, 2014 11:12
  • Tim Brown
    Member since: 2013
     

    Hi Marija

    Thanks for your help

    Previously I haven't explicitly configured the IoC container. I'm assuming episerver runs it under the covers (in global maybe).

    I have also tried using Fredriks code above as an Initialisation Module but the line 

    container.AddRegistry<StructureMapRegistry>();

    Doesn't compile so I knocked it out. I'm not sure where the reference is for this.

    Basically though we are not using IoC containers explicitly - the only place they are used is what EPiServer does. Everything seems the same - iot's as if the IoC initialisation in EPiServer.Global doesn't run correctly in some circumstances.

    I honestly think this is a bug in EPiServer. Certainly it shouldn't be this hard to set things up

     

    #79833 Jan 08, 2014 12:09
  • Tim Brown
    Member since: 2013
     

    OK to clarify - the StructureMapRegistry looks where the custom initialsation goes. But since we aren't doing any custom initialisation then it makes sense I have nothing to put here

    #79834 Jan 08, 2014 12:12
  • Marija Jemuovic
    Member since: 2010
     

    Yes, sure, you don't need any of it since you don't have any custom initialization. Could it be that you are having an initializationmodule that is missing a dependency to [ModuleDependency(typeof(EPiServer.Web.InitializationModule))]?

    I assume stack trace doesn't give you any entry point in your code, but seems like an EPiServer bug? What version are you running?

     

    #79843 Jan 08, 2014 12:32
  • Tim Brown
    Member since: 2013
     

    The error is at a piece of code that does

    LanguageBranch.LanguageBranchRepository.Load(cultureInfo);

    And the stack trace is 

    [StructureMapException: StructureMap Exception Code:  202

    No Default Instance defined for PluginFamily EPiServer.DataAbstraction.ILanguageBranchRepository, EPiServer, Version=7.0.586.8, Culture=neutral, PublicKeyToken=8fe83dea738b45b7]

       StructureMap.BuildSession.<.ctor>b__0(Type t) +162

       StructureMap.Util.Cache`2.get_Item(KEY key) +160

       StructureMap.BuildSession.CreateInstance(Type pluginType) +14

       StructureMap.Container.GetInstance(Type pluginType) +79

       EPiServer.ServiceLocation.StructureMapServiceLocator.DoGetInstance(Type serviceType, String key) +43

       EPiServer.ServiceLocation.ServiceLocatorImplBase.GetInstance(Type serviceType, String key) +50

     

    [ActivationException: Activation error occurred while trying to get instance of type ILanguageBranchRepository, key ""]

       EPiServer.ServiceLocation.ServiceLocatorImplBase.GetInstance(Type serviceType, String key) +110

       EPiServer.ServiceLocation.ServiceLocatorImplBase.GetInstance() +65

       EPiServer.DataAbstraction.LanguageBranch.get_LanguageBranchRepository() +31

     

    #79849 Edited, Jan 08, 2014 13:25
  • Tim Brown
    Member since: 2013
     

    Oh and I am CMS 7.

    Generally I could understand the failure but it's the fact it works on some but not others that is puzzling (very very puzzling)

    #79850 Jan 08, 2014 13:27
  • Marija Jemuovic
    Member since: 2010
     

    I can't reproduce the error, but can you try rewriting it like this:

    var langRepo = ServiceLocator.Current.GetInstance<ILanguageBranchRepository>();
    var yy = langRepo.Load(cultureInfo);

      

    I meant which specific version of 7, have you upgraded to 7.0.586.24? Maybe there was some sort of bug in the earlier versions.

    #79851 Jan 08, 2014 13:39
  • Tim Brown
    Member since: 2013
     

    Brilliant. Thank you so much that work!!! It must be a bug in the build. We are on 7.0.586.8

    Thank you

    #79861 Jan 08, 2014 17:29
  • Gatis Bergšpics
    Member since: 2011
     

    Had the same problem:

    [ActivationException: Activation error occurred while trying to get instance of type DefaultContentProvider, key ""]

    with inner exception:

    System.EntryPointNotFoundException

     

    this fixed problem for me:

    <runtime>
    <assemblyBinding xmlns="urn:schemas-microsoft-com:asm.v1">
    <dependentAssembly>
    <assemblyIdentity name="StructureMap" publicKeyToken="e60ad81abae3c223" culture="neutral" />
    <bindingRedirect oldVersion="0.0.0.0-2.6.4.0" newVersion="2.6.4.0" />
    </dependentAssembly>
    </assemblyBinding>
    </runtime>

    #80449 Edited, Jan 23, 2014 8:45
  • benedikts.johansons
    Member since: 2011
     

    Installing two Nugets solved it for me.

    EPiServer.CMS.Core -Version 7.0.586.1

    EPiServer.Framework -Version 7.0.859.1
    #81891 Feb 28, 2014 9:09
  • Björn Ali Göransson
    Member since: 2007
     

    Hello,

    (I'm running 7.19 so a bug fixed in this version is not the case - read on)

    I have found a definite (?) solution to this problem.

    To troubleshoot and gain more insight, (a bit simplistically to skip some precursory details) open the following locations on both your machines:

    • C:\Users\(your account)\AppData (this folder is hidden)\Temporary ASP.NET Files\
    • C:\Users\(your application pool account)\AppData (this folder is hidden)\Temporary ASP.NET Files\
    • C:\Windows\Microsoft.NET\Framework\v4.0 (or whatever version you're running)\Temporary ASP.NET Files\
    • C:\Windows\Microsoft.NET\Framework64\v4.0 (or whatever version you're running)\Temporary ASP.NET Files\

    (Probably, the 2 last ones won't be needed but are left for the cargo-cult troubleshooter)

    Delete all folders inside (you may need to stop IIS/IIS express for a while) and only start the EPiServer websites you need to troubleshoot.

    If you're running Cassini, you'll probably see a vs\ folder inside location 1, inside that you'll find a folder with a HEX-based name and another one inside that, inside that you'll find a folder UserCache\. Inside this folder you have a EPiFxAssemblyTypeCache.xml where all types that are used for IoC are listed. This is a performance thing because Reflection is very slow (read here), but it also allows us to troubleshoot without the need for fiddling with log4net.

    If you're running IIS proper, you'll probably see a vs\ folder inside location 2, inside that you'll find a folder with a HEX-based name, and eventually you'll find the same EPiFxAssemblyTypeCache.xml in there.

    Comparing these with diff is no use at once, since the assemblies inside are not ordered. But you'll probably find that EPiServer.Enterprise is missing from the faulty installation.

    Now, seeing that EPiServer.Enterprise contains the default implementation for IContentCopyHandler, ([ServiceConfiguration(ServiceType = typeof (IContentCopyHandler))] public class ContentCopyHandler : IContentCopyHandler), you will notice that removing EPiServer.Enterprise.dll from your bin\ folder in the functioning site yields the same result (or: error message).

    In my case, sending this file over FTP made the 200+kb file become ~23kb, so it probably became corrupted. Nevertheless, sending it again fixed the problem.

    TL;DR Copy the bin folder again.

    Björn Ali

    #118449 Edited, Mar 06, 2015 11:46
  •  

    Hello, 

    I am having same issue but not on the website. My webiste is working just fine after 8.x upgrade. But Quartz is failing for me with this error. I have a separate post that shows the code and the exception. Any help will be much appreciated.

    The other post is at:

    http://world.episerver.com/forum/developer-forum/EPiServer-Commerce/Thread-Container/2015/6/quartz-initialization-issues-after-episerver-82.x-upgrade/

    #123104 Jun 24, 2015 22:49