C# 无法实例化SessionProvider

C# 无法实例化SessionProvider,c#,umbraco-ucommerce,C#,Umbraco Ucommerce,我正在使用UConnector下载订单并更新状态。实际下载按预期工作,但当我尝试更新状态时,我收到一个错误。我已经在导致代码中出现错误的行上进行了注释。我希望有人能告诉我我错过了什么 My Component.config <configuration> <components> <component id="SessionProvider" service="UCommerce.EntitiesV2.ISessionPro

我正在使用UConnector下载订单并更新状态。实际下载按预期工作,但当我尝试更新状态时,我收到一个错误。我已经在导致代码中出现错误的行上进行了注释。我希望有人能告诉我我错过了什么

My Component.config

<configuration>
 <components>
    <component
        id="SessionProvider"
        service="UCommerce.EntitiesV2.ISessionProvider, UCommerce"
        type="UCommerce.EntitiesV2.SessionProvider, UCommerce"/>
    <component id="UCommerce.DataMappingsTag"
        service="UCommerce.EntitiesV2.IContainsNHibernateMappingsTag, UCommerce"
        type="UCommerce.EntitiesV2.MappingAssemblyTag, UCommerce"/>
    <component id="OrderService"
        service="UCommerce.Transactions.IOrderService, UCommerce"
        type="UCommerce.Transactions.OrderService, UCommerce"/>
    <component id="Repository"
        service="UCommerce.EntitiesV2.IRepository`1, UCommerce"
        type="UCommerce.EntitiesV2.Repository`1, UCommerce"/>
</components>
</configuration>

代码

var orderService=ObjectFactory.Instance.Resolve();
//var newOrderStatus=OrderStatus.Get((int)OrderStatusCode.Processing)//这条线
var newOrderStatus=OrderStatus.All().SingleOrDefault(x=>x.Name==“处理”)//或者这一行给出了相同的错误
orderService.ChangeOrderStatus(项目,newOrderStatus);
错误:

ComponentActivator:无法实例化 UCommerce.EntitiesV2.SessionProvider

内部异常:

{“没有支持服务的组件 UCommerce.Infrastructure.Configuration.CommerceConfigurationProvider 已找到“}

堆栈跟踪:

在 Castle.MicroKernel.ComponentActivator.DefaultComponentActivator.CreateInstanceCore(ConstructorCandidate 构造函数,对象[]参数,类型implType)位于 Castle.MicroKernel.ComponentActivator.DefaultComponentActivator.CreateInstance(CreationContext 上下文、构造函数candidate构造函数、对象[]参数)位于 Castle.MicroKernel.ComponentActivator.DefaultComponentActivator.Instantiate(CreationContext (上下文)在 Castle.MicroKernel.ComponentActivator.DefaultComponentActivator.InternalCreate(CreationContext (上下文)在 Castle.MicroKernel.ComponentActivator.AbstractComponentActivator.Create(CreationContext (上下文、负担) Castle.MicroKernel.Lifestyle.AbstractLifestyleManager.CreateInstance(CreationContext 上下文,布尔值(外部跟踪)位于 Castle.MicroKernel.Lifestyle.ScopedLifestyleManager.n_u编造方法3(CreationContext ,布尔)at Castle.MicroKernel.lifestylemanager.c_udisplayClass1.b_u0(操作
1
后创建)在
Castle.MicroKernel.Lifestyle.Scoped.DefaultLifetimeScope.GetCachedInstance(ComponentModel
模型,ScopedInstanceActivationCallback createInstance)位于
Castle.MicroKernel.lifestylemanager.Resolve(CreationContext
上下文,IReleasePolicy releasePolicy)位于
Castle.MicroKernel.Handlers.DefaultHandler.ResolveCore(CreationContext
上下文,布尔要求解除委托,布尔实例要求,
包袱&包袱)
Castle.MicroKernel.Handlers.DefaultHandler.Resolve(CreationContext
上下文,布尔实例(需要)位于
Castle.MicroKernel.Handlers.AbstractHandler.Resolve(CreationContext
(上下文)在
Castle.MicroKernel.Resolvers.DefaultDependencyResolver.ResolveFromKernelByType(CreationContext
上下文、组件模型、依赖项模型依赖项)位于
Castle.MicroKernel.Resolvers.DefaultDependencyResolver.ResolveFromKernel(CreationContext
上下文、组件模型、依赖项模型依赖项)位于
Castle.MicroKernel.Resolvers.DefaultDependencyResolver.ResolveCore(CreationContext
上下文,ISubDependencyResolver上下文HandlerResolver,组件模型
模型,依赖项模型依赖项)位于
Castle.MicroKernel.Resolvers.DefaultDependencyResolver.Resolve(CreationContext
上下文,ISubDependencyResolver上下文HandlerResolver,组件模型
模型,依赖项模型依赖项)位于
Castle.MicroKernel.ComponentActivator.DefaultComponentActivator.CreateConstructorArguments(ConstructorCandidate
构造函数,CreationContext上下文)位于
Castle.MicroKernel.ComponentActivator.DefaultComponentActivator.Instantiate(CreationContext
(上下文)在
Castle.MicroKernel.ComponentActivator.DefaultComponentActivator.InternalCreate(CreationContext
(上下文)在
Castle.MicroKernel.ComponentActivator.AbstractComponentActivator.Create(CreationContext
(上下文、负担)
Castle.MicroKernel.Lifestyle.AbstractLifestyleManager.CreateInstance(CreationContext
上下文,布尔值(外部跟踪)位于
Castle.MicroKernel.Lifestyle.ScopedLifestyleManager.n_u编造方法3(CreationContext
,布尔)at
Castle.MicroKernel.lifestylemanager.c_uudisplayClass1.b_uu0(操作
1 后创建)在 Castle.MicroKernel.Lifestyle.Scoped.DefaultLifetimeScope.GetCachedInstance(ComponentModel 模型,ScopedInstanceActivationCallback createInstance)位于 Castle.MicroKernel.lifestylemanager.Resolve(CreationContext 上下文,IReleasePolicy releasePolicy)位于 Castle.MicroKernel.Handlers.DefaultHandler.ResolveCore(CreationContext 上下文,布尔要求解除委托,布尔实例要求, 包袱&包袱) Castle.MicroKernel.Handlers.DefaultHandler.Resolve(CreationContext 上下文,布尔实例(需要)位于 Castle.MicroKernel.Handlers.AbstractHandler.Resolve(CreationContext (上下文)在 Castle.MicroKernel.Handlers.DefaultGenericHandler.Resolve(CreationContext 上下文,布尔实例(需要)位于 Castle.MicroKernel.Handlers.AbstractHandler.Resolve(CreationContext 位于Castle.MicroKernel.DefaultKernel.ResolveComponent(IHandler)的 处理程序、类型服务、IDictionary附加参数、IReleasePolicy (政策)在 Castle.MicroKernel.DefaultKernel.Castle.MicroKernel.IKernelInternal.Resolve(类型 服务、IDictionary参数、IReleasePolicy策略)位于 Castle.MicroKernel.DefaultKernel.Resolve(类型服务,IDictionary 参数)位于Castle.Windsor.WindsorContainer.Resolve at UCommerce.Infrastructure.ObjectFactory.Resolve位于 UCommerce.EntitiesV2.OrderStatus.GetRepo()位于 UCommerce.EntitiesV2.OrderStatus.All()位于 SiteConnector.Classes.OrdersListToCalClub.Send(IEnumerable`1输入)


我发现你实际上需要比你想象的更多的dll。 这里有两个截图,我包括(项目中的引用和lib文件夹)。我正在与sitecore集成,但我想您可以用umbraco对应的dll替换这些dll

这是我用来更新订单st的代码
var orderService = ObjectFactory.Instance.Resolve<IOrderService>(); 
//var newOrderStatus = OrderStatus.Get((int)OrderStatusCode.Processing);  //This line
var newOrderStatus = OrderStatus.All().SingleOrDefault(x => x.Name == "Processing");  //OR this line give the same error
orderService.ChangeOrderStatus(item, newOrderStatus);
ISession session = new SessionProvider("connectionstring").GetSession();
OrderStatus status = session.Query<OrderStatus>().FirstOrDefault(os => os.Name.Equals("Processing"));     
foreach (PurchaseOrder order in list.Select(o => o.PurchaseOrder))
{
    order.OrderStatus = status;
    session.Save(order);               
} 
session.Flush();
foreach (CcOrder ord in input)
{
    PurchaseOrder poOrder =
    _session.Query<PurchaseOrder>().FirstOrDefault(p => p.OrderNumber == ord.OrderId);
    OrderStatus newOrderStatus = _session.Query<OrderStatus>().FirstOrDefault(p => p.Name == ord.OrderStatusName);

    if (poOrder == null || newOrderStatus == null) continue; //If one or both not found go to next
    poOrder.OrderStatus = newOrderStatus;
    _session.Save(poOrder);
    _session.Flush();
    _session.Clear();
}